I'm facing a weird behavior in the designer, when I copied a view and pasted it in the same folder, I got this blank white screen in both the original and the copy views, then when I try to close the view, I get this error in the screenshots.
It started happening when I tried to copy a json into a view, but it was in a totally different gateway in a totally different docker container. Now, it's happening in the other gateway in the other container somehow!!
PS: The views both original and copy are working fine when I embed them in other views or open them in a perspective session.
Is this gateway hosted behind a reverse proxy? We recently encountered another similar situation where a rewrite configuration in a reverse proxy was inducing some escaping issues that caused this same error.
If this happens again, can you review the logs in the Console (can be shown via the Tools menu) within the Designer? There might be some more helpful information there to correlate with this exception dialog.
@kcollins1 I know you weren't asking me directly, and my issue might be different, but I am getting the dreaded Unable to get the view config: View config is undefined error and here is the log from the console. For me, it seems the "busier" the view, the more it happens. I usually hit save and try again, it will usually open after a few tries, so there definetely isn't anything wrong with the view. I opened a ticket a while back and IA support never could find the issue, maybe you can take a stab?
17:01:24.964 [Browser Thread: c09d33ea-02fc-4bee-aaec-844cf11e4e01] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined."
line_number: 121
source: "http://localhost:8088/res/perspective/js/react-dom-18.2.0.js"
17:01:24.964 [Browser Thread: c09d33ea-02fc-4bee-aaec-844cf11e4e01] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "onerrorLogger: {\"stack\":\"TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\\n at get selectionDimensionsClientBoundingRect (http://localhost:8088/res/perspective/js/PerspectiveDesigner.1ea4fc945c965fd69d63.js:2:250719)\\n at oe (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:5475)\\n at t.computeValue (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:11912)\\n at t.trackAndCompute (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:11738)\\n at t.get (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:10670)\\n at e.read (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:39612)\\n at b.get (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:41065)\\n at get selectionDimensions (http://localhost:8088/res/perspective/js/PerspectiveDesigner.1ea4fc945c965fd69d63.js:2:251204)\\n at oe (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:5475)\\n at t.computeValue (http://localhost:8088/res/perspective/js/mobx-5.15.7.js:15:11912)\",\"message\":\"Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\",\"name\":\"TypeError\",\"logData\":{\"msg\":\"Uncaught Exception\",\"errorMsg\":\"Uncaught TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\",\"url\":\"http://localhost:8088/res/perspective/js/react-dom-18.2.0.js\",\"line number\":198,\"column\":64}}"
line_number: 2
source: "http://localhost:8088/res/perspective/js/PerspectiveClient.b21ef825efc08df9dea8.js"
17:01:24.964 [Browser Thread: c09d33ea-02fc-4bee-aaec-844cf11e4e01] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "Uncaught TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined."
line_number: 198
source: "http://localhost:8088/res/perspective/js/react-dom-18.2.0.js"
@jlandwerlen, thank you for the stack trace. It actually looks like there was a ticket that might have addressed this specific error in 8.1.44. It is under IGN-9290 in our system.
Hi @kcollins1, sorry for the late answer. Here's my console's logs:
12:35:03.624 [AWT-EventQueue-0] INFO Perspective.Designer.Workspace -- Launching view with DesignerPageParams 'Lib', tab id 'Page/SK2001', using base url http://localhost:29088/data/perspective/design
12:35:03.937 [Browser Thread: ed2e7a16-9181-470f-8a56-61e0f0363217] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined."
line_number: 121
source: "http://localhost:29088/res/perspective/js/react-dom-18.2.0.js"
12:35:03.938 [Browser Thread: ed2e7a16-9181-470f-8a56-61e0f0363217] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "onerrorLogger: {\"stack\":\"TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\\n at get selectionDimensionsClientBoundingRect (http://localhost:29088/res/perspective/js/PerspectiveDesigner.1ea4fc945c965fd69d63.js:2:250719)\\n at oe (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:5475)\\n at t.computeValue (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:11912)\\n at t.trackAndCompute (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:11738)\\n at t.get (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:10670)\\n at e.read (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:39612)\\n at b.get (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:41065)\\n at get selectionDimensions (http://localhost:29088/res/perspective/js/PerspectiveDesigner.1ea4fc945c965fd69d63.js:2:251204)\\n at oe (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:5475)\\n at t.computeValue (http://localhost:29088/res/perspective/js/mobx-5.15.7.js:15:11912)\",\"message\":\"Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\",\"name\":\"TypeError\",\"logData\":{\"msg\":\"Uncaught Exception\",\"errorMsg\":\"Uncaught TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined.\",\"url\":\"http://localhost:29088/res/perspective/js/react-dom-18.2.0.js\",\"line number\":198,\"column\":64}}"
line_number: 2
source: "http://localhost:29088/res/perspective/js/PerspectiveClient.4c66478bafda3caeebe1.js"
12:35:03.938 [Browser Thread: ed2e7a16-9181-470f-8a56-61e0f0363217] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "Uncaught TypeError: Cannot destructure property \'width\' of \'this.rootViewDefaultSize\' as it is undefined."
line_number: 198
source: "http://localhost:29088/res/perspective/js/react-dom-18.2.0.js"
12:35:14.555 [AWT-EventQueue-0] WARN ViewResourceEditor -- Unable to save the view
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:461)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:66)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.commit(ResourceEditor.java:166)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:308)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:295)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$1.actionPerformed(TabbedResourceWorkspace.java:86)
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:140)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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)
12:35:14.560 [AWT-EventQueue-0] ERROR com.inductiveautomation.ignition.client.util.gui.ErrorUtil -- null
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:461)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:66)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.commit(ResourceEditor.java:166)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:308)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:295)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$1.actionPerformed(TabbedResourceWorkspace.java:86)
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:140)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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)
12:35:14.555 [Browser Thread: ed2e7a16-9181-470f-8a56-61e0f0363217] ERROR Perspective.Designer.Workspace -- level: LEVEL_ERROR
message: "store.DesignerViewInstance: Attempted to collect View Configuration for save, but root view not found!"
line_number: 2
source: "http://localhost:29088/res/perspective/js/PerspectiveClient.4c66478bafda3caeebe1.js"
Thanks for your support.
Note: when I imported the same project into another gateway installed directly on Windows Server host, everything worked fine.