# Perspective View config is undefined

**URL:** <https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [September 30, 2024, 5:43am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596 "2024-09-30T05:43:37Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ali\_Ali](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ali\_Ali](https://forum.inductiveautomation.com/u/Ali_Ali)\
**Post date:** [September 30, 2024, 5:43am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/1 "2024-09-30T05:43:37Z")

</div>

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.

Any ideas?  
Thanks

 ![Screenshot from 2024-09-30 09-36-38](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/3/f3e7f40a1e955f77cb1de0640fbc8a88c249460c.png)  
 ![Screenshot from 2024-09-30 09-37-03](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/8/58f0107e2b1289a14af14f464e4786a5a5d6591e.png)  
 ![Screenshot from 2024-09-30 09-37-07](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/7/7707db72208788f99dfdb38d5d4bb7e89310e5fd.png)

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [October 21, 2024, 2:06pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/2 "2024-10-21T14:06:25Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Ali\_Ali](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ali\_Ali](https://forum.inductiveautomation.com/u/Ali_Ali)\
**Post date:** [October 23, 2024, 7:01am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/3 "2024-10-23T07:01:47Z")

</div>

No, it's not hosted behind any reverse proxy.

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [October 23, 2024, 2:38pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/4 "2024-10-23T14:38:54Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [October 28, 2024, 9:09pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/5 "2024-10-28T21:09:06Z")

</div>

@kcollins 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?

```python
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"

```

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [October 28, 2024, 9:19pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/6 "2024-10-28T21:19:48Z")

</div>

@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.

See this post from @avaughn over [here](https://forum.inductiveautomation.com/t/view-undefined-ongoing-needs-a-fix/95752/3).

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [October 28, 2024, 9:21pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/7 "2024-10-28T21:21:40Z")

</div>

Will update and report back, thank you!

---

<div class="post-metadata">

**Author:** ![Ali\_Ali](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ali\_Ali](https://forum.inductiveautomation.com/u/Ali_Ali)\
**Post date:** [November 3, 2024, 10:37am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/8 "2024-11-03T10:37:32Z")

</div>

Hi @kcollins, sorry for the late answer. Here's my console's logs:

```python
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.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [November 3, 2024, 12:22pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/9 "2024-11-03T12:22:16Z")

</div>

Your logs point to default width just like mine did. Update to 8.1.44. That update fixed the issue for me, it should for you as well.

---

<div class="post-metadata">

**Author:** ![Andrii\_Ushchapovskyi](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@Andrii\_Ushchapovskyi](https://forum.inductiveautomation.com/u/Andrii_Ushchapovskyi)\
**Post date:** [April 18, 2025, 8:05am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/10 "2025-04-18T08:05:47Z")

</div>

I have upgraded to 8.1.44 but issue is still present.  
And yes, gateway is hosted behind reverse proxy.

Are there fixes for this issue?

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [April 18, 2025, 2:04pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/11 "2025-04-18T14:04:56Z")

</div>

> [@Andrii\_Ushchapovskyi](#):
>
> And yes, gateway is hosted behind reverse proxy.

What kind of reverse proxy is being used?

---

<div class="post-metadata">

**Author:** ![Andrii\_Ushchapovskyi](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@Andrii\_Ushchapovskyi](https://forum.inductiveautomation.com/u/Andrii_Ushchapovskyi)\
**Post date:** [April 18, 2025, 4:39pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/12 "2025-04-18T16:39:58Z")

</div>

I am using apache as a reverse proxy

пт, 18 квіт. 2025 р., 17:15 користувач Kevin Collins via Inductive Automation Forum \<[notifications@inductiveautomation.discoursemail.com](mailto:notifications@inductiveautomation.discoursemail.com)\> пише:

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [April 18, 2025, 6:32pm UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/13 "2025-04-18T18:32:09Z")

</div>

You might investigate what kinds of rewrites you might be doing in your reverse proxy configuration. We've observed (separate ticket IGN-11526 on our side) some reverse proxy setups defaulting to rewriting URLs in ways that negatively impact Perspective. See [this link](https://learn.microsoft.com/en-us/azure/container-apps/faq#why-is-the-url-my-app-receives-different-than-the-url-specified-in-the-request-) as an example.

---

<div class="post-metadata">

**Author:** ![Andrii\_Ushchapovskyi](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@Andrii\_Ushchapovskyi](https://forum.inductiveautomation.com/u/Andrii_Ushchapovskyi)\
**Post date:** [April 21, 2025, 10:33am UTC](https://forum.inductiveautomation.com/t/perspective-view-config-is-undefined/96596/14 "2025-04-21T10:33:59Z")

</div>

Yeah, the problem is with %2F character ("/") in the view path.  
Solved it with "AllowEncodedSlashes NoDecode" directive
