Unable to Open Views in Perspective Session – Persistent Loading and Save Error

I’m currently unable to open any views in the Perspective session. The interface remains stuck on “Loading” indefinitely. Additionally, when I attempt to save the view, an error message appears.

I’ve already tried uninstalling and reinstalling both the Ignition Launcher and the Gateway, but the issue persists immediately after reinstallation.

The following is the detailed error code,

java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Unexpected return type; expected string, got null
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:469)
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.perspective.designer.workspace.ViewResourceEditor.notifyDeactivated(ViewResourceEditor.java:577)
at com.inductiveautomation.perspective.designer.workspace.PerspectiveWorkspaceListener.editorSelected(PerspectiveWorkspaceListener.java:80)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$3.stateChanged(TabbedResourceWorkspace.java:120)
at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
at com.jidesoft.swing.JideTabbedPane$IgnoreableSingleSelectionModel.fireStateChanged(Unknown Source)
at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
at com.jidesoft.swing.JideTabbedPane.setSelectedIndex(Unknown Source)
at java.desktop/javax.swing.JTabbedPane.setSelectedComponent(Unknown Source)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:279)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:248)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceNode.open(ResourceNode.java:129)
at com.inductiveautomation.ignition.designer.navtree.model.AbstractResourceNavTreeNode.onDoubleClick(AbstractResourceNavTreeNode.java:428)
at java.desktop/java.awt.event.InvocationEvent.dispatch(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.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.IllegalArgumentException: Unexpected return type; expected string, got null
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.lambda$getObjectForSave$3(ViewResourceEditor.java:464)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at com.inductiveautomation.perspective.designer.workspace.JavaJsBridge.lambda$invokeFunction$2(JavaJsBridge.java:287)
at com.teamdev.jxbrowser.frame.internal.FrameImpl$1.onNext(FrameImpl.java:359)
at com.teamdev.jxbrowser.frame.internal.FrameImpl$1.onNext(FrameImpl.java:355)
at com.teamdev.jxbrowser.internal.rpc.ServiceConnectionImpl.lambda$invokeAsync$5(ServiceConnectionImpl.java:228)
at com.teamdev.jxbrowser.internal.RpcThreadImpl$TaskRunner.processTasks(RpcThreadImpl.java:175)
at java.base/java.lang.Thread.run(Unknown Source)

Ignition v8.1.49 (b2025081208)
Java: Azul Systems, Inc. 17.0.15

Hi, Melbin, and welcome to the forum.

Please see Wiki - how to post code on this forum. There's a pencil icon below your post so that you can edit and tidy it up. If you use the code formatting </> and "Hide Details" for code and error messages it keeps things very tidy.

This is a symptom of some other error.

Basically, within the Ignition Designer, specifically in Perspective, we're "embedding" a full web browser engine (since Perspective is fundamentally web based). When the designer attempts to save the project, it has to contact that web browser and ask it for the latest page state. That attempt is failing. Exactly why is not going to show up in this particular error.

If you check the Designer's output console/the diagnostics view, there will likely be a set of other errors related to JxBrowser - that is the actual problem here that you need to identify.

From past experience, it's almost always some kind of IT policy/antivirus/security software/etc preventing the designer from launching the embedded browser instance.