# \[BUG-16846\] Perspective designer issues after losing connection

**URL:** <https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543>\
**Category:** Ignition Early Access\
**Tags:** perspective\
**Created:** [July 9, 2020, 2:24pm UTC](https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543 "2020-07-09T14:24:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jpark](https://avatars.discourse-cdn.com/v4/letter/j/a88e57/32.png) [@jpark](https://forum.inductiveautomation.com/u/jpark)\
**Post date:** [July 9, 2020, 2:24pm UTC](https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543/1 "2020-07-09T14:24:10Z")

</div>

Ignition 8.0.14

I usually get the following error when I have the designer open on a Perspective view and I temporarily lose connection to the gateway. Usually the loss of connection is due to me connecting to a client’s VPN. One the connection comes back I get the following error. I am then unable to save / run bindings correctly.

```auto
07:18:53.582 [AWT-EventQueue-0] WARN Perspective.SessionProps - Unable to obtain session props for save.
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.pageconfig.SessionPropsAdapter.commit(SessionPropsAdapter.java:134)
	at com.inductiveautomation.perspective.designer.workspace.pageconfig.WorkspaceRootConfig.commit(WorkspaceRootConfig.java:28)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.notifyProjectSaveStart(ViewWorkspace.java:292)
	at com.inductiveautomation.perspective.designer.DesignerHook.notifyProjectSaveStart(DesignerHook.java:439)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.commitAll(IgnitionDesigner.java:1573)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleUpdate(IgnitionDesigner.java:2780)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$8.actionPerformed(IgnitionDesigner.java:2349)
	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 com.jidesoft.plaf.basic.BasicJideButtonListener.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(Native Method)
	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(Native Method)
	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:112)
	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.chromium.JSContext.a(SourceFile:1640)
	at com.teamdev.jxbrowser.chromium.JSContext$a.onMessageReceived(SourceFile:713)
	at com.teamdev.jxbrowser.chromium.internal.ipc.q.a(SourceFile:1085)
	at com.teamdev.jxbrowser.chromium.internal.ipc.r.run(SourceFile:69)
	at com.teamdev.jxbrowser.chromium.internal.t.run(SourceFile:79)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
07:18:53.582 [Browser Events Thread] INFO Perspective.SessionProps - store.DesignerViewInstance: Attempted to collect View Configuration for save, but root view not found!

```

---

<div class="post-metadata">

**Author:** ![ynejati](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ynejati/32/6093_2.png) [@ynejati](https://forum.inductiveautomation.com/u/ynejati)\
**Post date:** [July 22, 2020, 11:51pm UTC](https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543/2 "2020-07-22T23:51:29Z")

</div>

Okay, Jae. We are working on it. Thanks for the report.

---

<div class="post-metadata">

**Author:** ![Tim.J](https://avatars.discourse-cdn.com/v4/letter/t/b5ac83/32.png) [@Tim.J](https://forum.inductiveautomation.com/u/Tim.J)\
**Post date:** [February 2, 2021, 1:45am UTC](https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543/3 "2021-02-02T01:45:45Z")

</div>

I just received the same error for a similar situation.

```auto
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:118)
	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.frame.internal.FrameImpl.invokeObjectMethod(FrameImpl.java:574)
	at com.teamdev.jxbrowser.frame.internal.FrameImpl.processCallback(FrameImpl.java:166)
	at com.teamdev.jxbrowser.internal.rpc.stream.CallbackStream.process(CallbackStream.java:178)
	at com.teamdev.jxbrowser.internal.rpc.stream.Stream$StreamObserver.lambda$onNext$0(Stream.java:162)
	at com.teamdev.jxbrowser.internal.BrowserThread$TaskRunner.processTasks(BrowserThread.java:137)
	at java.base/java.lang.Thread.run(Unknown Source)
18:40:20.307 [Browser Thread: 49703] ERROR Perspective.Designer.Workspace - level: LEVEL_ERROR
message: "store.DesignerViewInstance: Attempted to collect View Configuration for save, but root view not found!"

```

---

<div class="post-metadata">

**Author:** ![jramirez3](https://avatars.discourse-cdn.com/v4/letter/j/a183cd/32.png) [@jramirez3](https://forum.inductiveautomation.com/u/jramirez3)\
**Post date:** [June 2, 2021, 9:35pm UTC](https://forum.inductiveautomation.com/t/bug-16846-perspective-designer-issues-after-losing-connection/36543/4 "2021-06-02T21:35:50Z")

</div>

Is there a fix for this?

I’m on 8.1.1 and after losing connection and getting it back, every time I save this error pops up and it seems like things start messing up, like parameters gone, custom properties, etc.
