View config is undefined

I've got a perspective project and recently when I try to open a second view it will give me the following error:

java.lang.Exception: Unable to get the view config: View config is undefined.

I can close all my views and open any of the views that are giving this error so I don't believe it's an issue with any specific view. It seems that some views will open up together, while others won't and I have to close all my views again to open them up.

I've tried copying a screen JSON here but it looks like they are too long. Any ideas what's causing this?

Here is one of the issue's

java.util.concurrent.ExecutionException: java.lang.Exception: Unable to get the view config: View config is undefined.
	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:487)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:68)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.commit(ResourceEditor.java:166)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:304)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:291)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$1.actionPerformed(TabbedResourceWorkspace.java:82)
	at com.jidesoft.plaf.basic.BasicJideTabbedPaneUI$CloseTabAction.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.Exception: Unable to get the view config: View config is undefined.
	at com.inductiveautomation.perspective.designer.workspace.JavaJsBridge.onSaveError(JavaJsBridge.java:139)
	at jdk.internal.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.teamdev.jxbrowser.js.internal.JsAccessibleMethod.invoke(JsAccessibleMethod.java:66)
	at com.teamdev.jxbrowser.js.internal.JsAccessibleObject.invokeMethod(JsAccessibleObject.java:239)
	at com.teamdev.jxbrowser.js.internal.JsAccessibleObject.invokeMethod(JsAccessibleObject.java:126)
	at com.teamdev.jxbrowser.frame.internal.FrameImpl.lambda$processCallback$4(FrameImpl.java:201)
	at java.base/java.util.Optional.map(Unknown Source)
	at com.teamdev.jxbrowser.frame.internal.FrameImpl.processCallback(FrameImpl.java:201)
	at com.teamdev.jxbrowser.internal.rpc.stream.CallbackStream.process(CallbackStream.java:181)
	at com.teamdev.jxbrowser.internal.rpc.stream.Stream$StreamObserver.lambda$onNext$0(Stream.java:167)
	at com.teamdev.jxbrowser.internal.RpcThreadImpl$TaskRunner.processTasks(RpcThreadImpl.java:172)
	at java.base/java.lang.Thread.run(Unknown Source)

Ignition v8.1.33 (b2023101913)
Java: Azul Systems, Inc. 17.0.8

If I constantly close and open the screens it will eventually open up with a conflicting screen.

This has been a recurring issue that we've been unable to replicate or successfully troubleshoot in-house. The typical cause is that the view.json file in the file system has been wiped clean, resulting in something which can't be parsed as json. We're aware of the issue, but of the 23 forum threads (as of me writing this), no one has been able to provide a set of steps which can be used to replicate the issue. Internally, we've dug deep into the lifecycle of the resource and have so far been unable to identify anything that could cause the issue. If you can provide insight into what you were doing or last did to the View i question we would greatly appreciate it.

Also please provide what version of Ignition you are using, along with your operating system and version.

This issue is very annoying. I get this after I close a view that doesn't load. Now I close the error popup and close the view and re-open it. Sometimes it works on the first re-open but sometimes the view doesn't load again, so I close it and re-open it again.

I just had to open and close a view 5 times to get the view to actually load in.

I see the same issues and IA was able to replicate but nothing more came of it. The interesting part, only certain machines seem affected. I can open in one environment and not see any issues, I can open in a different environment and see the problem constantly. Sometimes, saving helps and then they open, other times, nothing helps, you just have to keep trying until they open.

I hope one day this can be fixed. I have this happen all the time and I just recently upgraded to 8.1.41. I had hopes that this error would go away but no luck.

Right now it's happening when I'm trying to open a page, usually, I just have to close it and try to open it again. This usually works after the 4th or 5th time but now I'm on the 26th time and it still won't open.

For us, this issue sometimes happens when opening views and sometimes doesn't. Same views. Just double clicking them to open them.

I was at my sister's house this weekend and was playing around in Ignition. I closed a lot of the internal apps, vpn connections and other bloat I normally have running on my computer and it happened a lot less often.

I don't know if it's a spontaneous resource thing or if it's a "file is locked" thing. I can tell you we run bitdefender and whatever other resource scans the IT people are doing and it happens pretty often in the office. It almost never happened when I wasn't in the office with the same screens.

I feel like setting up an exclusion for the Ignition directory with all the file scanning IT stuff would probably make it happen a lot less.

That said, it is still happening for one of my colleagues on an edge station in the field so it isn't just a resource scan thing. I suspect there are multiple things that cause this to happen.

It would be good if Ignition checked for a file lock when trying to open a screen and just wrote something to logs if the file is locked. At least then we can know that a file lock caused the problem.

Has there been any resolution on this issue? I'm running into the same error trying to open a view in 8.1.3. designer.

It's one specific view that works fine for several months and then one day - poof, can't open it in designer and it just shows a configuration error on all perspective sessions. It says the view config is undefined but I've verified that the file very much exists and contains the .json definition of the view. Ignition can clearly see it to some degree also.

Your issue sounds a bit different since it's affecting the perspective sessions and isn't exclusive to the Designer. There is a fix coming in 8.1.44 to address a race condition that could cause the views to not load in the Designer.

I would suggest getting in contact with support to look into this further.
https://support.inductiveautomation.com/hc/en-us

1 Like