Hi! We are actively working to fix this issue and can hopefully get something out quick. In the meantime, if you are willing to do the following steps, you should be able to export your problematic app/module, manually edit, and then reimport to resolve.
Once you have exported your app and open it in your editor, you are looking for two fields: _keyByIndex
and _parentKeyByIndex
. This error is caused by some edge cases where items can somehow self reference, aka _keyByIndex[index]
and parentKey[index]
will have the same value.
For instance, in this example we identify the problem as being indices 11 and 12 for both arrays.
"_keyByIndex":["foo1","","","","foo2","","","","","","","foo3","foo3","","",""]
"_parentKeyByIndex":["","foo1","foo1","foo1","","foo2","foo2","foo2","foo2","foo2","foo2","","foo3","foo3","foo3","foo3"]
index 11 has a key
of foo3
and an empty parentKey
(this makes sense, as this is a top level navigation item and it does not itself have a parent)
index 12 has a key
of foo3
and a parentKey
of "foo3"
. This does not make sense, as this item is in fact a nested menu item and its key should actually be empty.
The fix in this case is to delete the second "foo3"
value (replace with ""
) in the _keyByIndex
array in the 12th index. You will have to repeat this operation for any other occurrences in your app json, depending on how many times this occurs in your navigation component. Additionally, we save both an escaped and unescaped version of the app template, so you will need to do the delete in two places (if you look for _keyByIndex
you will see an escaped version as well that resembles ,\"_keyByIndex\"
)
Once you have made the update and saved the file, feel free to re upload into Retool and it should hopefully resolve the issue. If this did not work, you have a complicated example, or you are otherwise having trouble doing this change yourself, feel free to email me at justin.chen@retool.com and I will help fix it for you!