Select to view content in your preferred language

BUG: 'Ghost Widgets' in JSON crash app after saving with new version (1.15.0)

1425
19
Jump to solution
2 weeks ago
DanMakridakis
Occasional Contributor

I made 1 change to my app in ExB and then published, and now it has completely erased everything!!!! In edit mode it is now completely blank! Nothing! 

In ArcGIS Online Assistant, it appears as though the JSON is still there for the published version. Even though that now loads blank too. ESRI has not exposed the JSON for the draft version so I can't see if it is there anymore, but I suspect it isn't.

PLEASE FIX!!!!!!

BUG UPDATE:

I discovered the BUG causing this issue, which I explain in detail in a reply below. Essentially, "ghost widgets" in the JSON are left behind from previous versions and are not being updated to 1.15.0. These widgets are nowhere to be found in the editor but still appear in the JSON code. Because they are not in the app, they are not updated when you save it. The presence of widgets with older versions makes the JSON unreadable by the newest version of ExB. Use the link below to jump to the longer explanation.

See Reply Below

19 Replies
Junshan_Liu
Occasional Contributor

@DanMakridakis Thanks for your feedback! We have found some widgets may not be used by left in the config, but we don't know the reproducible steps to reproduce this issue, so this issue has not been fixed. We'll try to figure out a way to clean these stale widgets. It's great if you can help provide steps that can create this kind of app!

0 Kudos
DanMakridakis
Occasional Contributor

I've tested various methods to replicate the issue but have been unsuccessful. I wonder if the problem causing stale widgets has resolved itself. Many of my existing apps with stale widgets were built using custom templates that already contained these stale widgets, causing them to be carried over time. Unfortunately, I no longer have the original apps from which I created those templates to reverse-engineer the process.

I've noticed that some stale widgets are referenced by the actions of other stale widgets, such as a search widget with an action linked to a stale map. Some widgets may have been embedded within another widget or sidebar when removed, like a sidebar containing a map with a widget controller and search widget (child within a parent). However, all my tests to recreate these sequences, such as setting up parent and child widgets, connecting actions, then removing them, have been unsuccessful. I've tried various combinations of adding, removing, embedding, sending to pending, connecting actions, saving, publishing, creating templates, and republishing. I've even experimented with different device sizes, where one size would have the widget in pending and the other not, then deleting them or switching back to auto. Still, no luck.

In older versions, could you remove a widget directly from the pending list via an ellipsis menu? I was wondering if this used to be possible and caused child widgets to remain when the parent was removed?

Additionally, was the message below always present? If not, are these stale widgets legacy items from before the message was added, resulting from some sequence of removing widgets from one device and not another, or switching from custom to auto, causing them not to be properly removed from the code?

DanMakridakis_0-1719943172430.png

There was also a custom print service referencing a stale print widget, which referenced a stale map with stale widget controllers and search widgets also linked to it. Again, I was unable to reproduce any sequence to create these stale widgets in the context of the print service.

It's also challenging to troubleshoot without access to the draft JSON to compare and see if there are any other clues to what is happening.

Could the sequence require a version update in the middle of the process, making it not replicable while in the same version?

Nonetheless, that's the extent of my time for troubleshooting this. Sorry I couldn't help further.

0 Kudos
Junshan_Liu
Occasional Contributor

@DanMakridakis Thanks so much for putting so much effort into this issue! 

For the delete widget warning window, it is not always present. It'll be displayed when we delete a widget that are referenced by multiple devices.

 

Maybe this issue has been fixed as you said, the stale widgets are in the templates or old apps only. We'll clean the default templates in future releases.

 

0 Kudos
Shauna-RaeBrown
Occasional Contributor II

This morning I heard about an upcoming change to Google Chrome and Microsoft Edge browsers that will likely impact ArcGIS Enterprise versions 11.2 and earlier. Here's a URL that goes into a little more detail (https://cloudpointgeo.com/blog/2024/6/25/an-arcgis-enterprise-users-guide-to-the-impact-of-google-ch....  Anyway, have you tried using a different browser to see if that changes anything?

 

DanMakridakis
Occasional Contributor

That article says that the update will occur in July. I repeated the steps in both chrome and Edge and both yielded the same results.

But Thank You for the article! We just updated to 11.2 a couple weeks ago and will be on the look out for this issue and the release of the patch.

0 Kudos
HCGIS_asolberg
New Contributor

I have the same issue.

DanMakridakis
Occasional Contributor

See my response above with the reason this is happening.

0 Kudos
Junshan_Liu
Occasional Contributor

@DanMakridakis This issue is fixed. The app is not lost; it just triggers a bug, which causes it to not load. Could you just refresh your app to give it a try?

0 Kudos
SerjStol
Occasional Contributor

This was happening to me yesterday as well. Blank screen with Load Config Error after I saved our existing ExB app, luckily I didn't touch our Production version! I tried to remove every single widget to eliminate the issue and just have the blank canvas and the error still persisted!

However, it seems to have been quickly fixed by Esri? All the problematic apps are now working for me... 

SerjStol_0-1719565366759.pngSerjStol_1-1719565378647.png

 

TimWestern
Occasional Contributor

One thing I've noticed which isn't always obvious.

When you are doing custom widget work as well, and the config file structure changes.  Simply publishing the new one to the client doesn't fix it.  I have noticed when developing localhost to our instance (which I think is AGOL and not Enterprise), that the widget and sometimes the app depending on how the widget is first activated, can cause it to error or crash.  The only way I've found to fix that is to remove the widget from the app, save it, then re add and reconfigure it.  (Take snap shots of any settings before removing though)

I wonder if this behavior is linked to this Ghost Widget behavior.