Designer errors on Mac with Ignition Edge on Pi

I'm using a M1 MacBook Air and have the latest Ignition designer. I have Ignition Edge running on a RPi4 with 4GB RAM. I've allocated Designer 2GB of RAM.

I am constantly running into random errors in my designer session where the view screen will go completely blank and then the error window will open which is also blank. However, when I open the full error pane there are errors listed there - I have pasted three of them here.

The only way to get out of it is to quit Designer and reopen. Sometimes even this doesn't work and I have to do a full restart.

java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:491)
	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:598)
	at com.inductiveautomation.perspective.designer.workspace.PerspectiveWorkspaceListener.editorSelected(PerspectiveWorkspaceListener.java:80)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$3.stateChanged(TabbedResourceWorkspace.java:115)
	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:244)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceNode.open(ResourceNode.java:139)
	at com.inductiveautomation.perspective.designer.workspace.nav.ViewNode.runUpdate(ViewNode.java:342)
	at com.inductiveautomation.perspective.designer.workspace.nav.ViewNode.onChildrenSelected(ViewNode.java:359)
	at com.inductiveautomation.ignition.designer.navtree.model.AbstractNavTreeNode.dispatchSelectionEvent(AbstractNavTreeNode.java:817)
	at com.inductiveautomation.ignition.designer.navtree.model.AbstractNavTreeNode.dispatchSelectionEvent(AbstractNavTreeNode.java:813)
	at com.inductiveautomation.ignition.designer.navtree.model.AbstractNavTreeNode.dispatchSelectionEvent(AbstractNavTreeNode.java:813)
	at com.inductiveautomation.ignition.designer.navtree.model.AbstractNavTreeNode.dispatchSelectionEvent(AbstractNavTreeNode.java:813)
	at com.inductiveautomation.ignition.designer.navtree.NavTreePanel$SelectionListener.valueChanged(NavTreePanel.java:532)
	at java.desktop/javax.swing.JTree.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
	at java.desktop/javax.swing.JTree.setSelectionPath(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(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)

Ignition v8.1.23 (b2022121308)
Java: Azul Systems, Inc. 11.0.16.1

java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.getObjectForSave(ViewResourceEditor.java:491)
	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:598)
	at com.inductiveautomation.perspective.designer.workspace.PerspectiveWorkspaceListener.editorSelected(PerspectiveWorkspaceListener.java:80)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$3.stateChanged(TabbedResourceWorkspace.java:115)
	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 com.jidesoft.plaf.basic.BasicJideTabbedPaneUI$MouseHandler.mousePressed(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(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 com.jidesoft.docking.DockingUtils.a(Unknown Source)
	at com.jidesoft.docking.DefaultDockingManager.handleEvent(Unknown Source)
	at com.jidesoft.docking.DefaultDockingManager$a3.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(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.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)

Ignition v8.1.23 (b2022121308)
Java: Azul Systems, Inc. 11.0.16.1

java.lang.IllegalStateException
	at com.teamdev.jxbrowser.deps.com.google.common.base.Preconditions.checkState(Preconditions.java:492)
	at com.teamdev.jxbrowser.internal.CloseableImpl.checkNotClosed(CloseableImpl.java:34)
	at com.teamdev.jxbrowser.engine.internal.EngineImpl.newBrowser(EngineImpl.java:555)
	at com.inductiveautomation.perspective.designer.workspace.design.BrowserPanel.<init>(BrowserPanel.java:138)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.init(ViewResourceEditor.java:368)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.init(ViewResourceEditor.java:68)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.loadResource(ResourceEditor.java:64)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.<init>(ResourceEditor.java:39)
	at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.<init>(ViewResourceEditor.java:130)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.newResourceEditor(ViewWorkspace.java:363)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:248)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceNode.open(ResourceNode.java:139)
	at com.inductiveautomation.ignition.designer.navtree.model.AbstractResourceNavTreeNode.onDoubleClick(AbstractResourceNavTreeNode.java:407)
	at com.inductiveautomation.ignition.designer.navtree.NavTreePanel$MouseListener.lambda$mousePressed$0(NavTreePanel.java:698)
	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(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)

Ignition v8.1.23 (b2022121308)
Java: Azul Systems, Inc. 11.0.16.1

The version of JxBrowser we're using is quite old and has awful performance and stability on MacOS, particularly ARM Macs. Unfortunately, there's no workaround other than waiting for us to upgrade JxBrowser, which is predicated on Teamdev giving us a version of JxBrowser that doesn't itself have a crippling bug on one of our supported platforms. This has been an ongoing struggle for us, and you're not the first person to run into these issues.

Thanks Paul. Would I be better off using a Windows/Linux VM to run Designer?

Windows might be worth a try, but keep in mind you'll be relying in their seamless ARM-to-x86 translation that may also have the same issues as macOS.

It won't work on Linux because you'll be running an ARM version of Linux.

The Apple Silicon based Macs are pretty incredible but the big downside, at least in our little industry, is that you can no longer "natively" run x86 VMs and software.

1 Like

I use a windows VM on my Mac for testing, and it doesn't exhibit the negative behaviors noted in the forum.

1 Like