# Issue restoring from a backup \_not\_ containing a specific perspective view

**URL:** <https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102>\
**Category:** Ignition 8.3 Early Access\
**Tags:** perspective\
**Created:** [June 5, 2025, 6:04pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102 "2025-06-05T18:04:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [June 5, 2025, 6:04pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/1 "2025-06-05T18:04:00Z")

</div>

If i'm in the designer manipulating view X, and i then restore a gateway backup not containing view X, and then I update the designer, it throws a jswing error on project update and puts the designer into a weird broken state where the new views from that gateway backup aren't visible

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 5, 2025, 6:12pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/2 "2025-06-05T18:12:27Z")

</div>

Retest this next week, I just merged some changes yesterday with conflicts/updates not being resolved correctly. This might also be nothing, because some of the logic around "I'm in a weird state and should give up" is disabled in non-versioned builds.

The full error stacktrace might be useful too 😃

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [June 5, 2025, 6:19pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/3 "2025-06-05T18:19:10Z")

</div>

if/when i repro it again i'll send over the full stack trace. good to know RE conflicts/updates, i can consistently brick the designer in new and interesting ways with project imports (i can get the designer to allow me to edit a view that doesn't show up in the project browser lol)

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [June 5, 2025, 7:24pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/4 "2025-06-05T19:24:25Z")

</div>

@paul-griffith full stacktrace:

```python
java.lang.NullPointerException: Cannot invoke "javax.swing.JComponent.isVisible()" because "icon" is null
	at com.inductiveautomation.ignition.client.jsonedit.NodeEditor$MainEditorLayout.layoutContainer(NodeEditor.java:585)
	at java.desktop/java.awt.Container.layout(Unknown Source)
	at java.desktop/java.awt.Container.doLayout(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validateTree(Unknown Source)
	at java.desktop/java.awt.Container.validate(Unknown Source)
	at java.desktop/javax.swing.JLayeredPane.addImpl(Unknown Source)
	at java.desktop/java.awt.Container.add(Unknown Source)
	at java.desktop/javax.swing.JRootPane.setContentPane(Unknown Source)
	at com.jidesoft.docking.DockableFrame.setContentPane(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.propertyeditor.PropertyEditorFrame.setDesignAdapter(PropertyEditorFrame.java:197)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace$2.lambda$stateChanged$0(ViewWorkspace.java:283)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace$2.stateChanged(ViewWorkspace.java:283)
	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.removeTabAt(Unknown Source)
	at com.jidesoft.swing.JideTabbedPane.removeTabAt(Unknown Source)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.close(TabbedResourceWorkspace.java:324)
	at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace$4.resourcesDeleted(TabbedResourceWorkspace.java:165)
	at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.notifyListener(AbstractResourceCollection.java:343)
	at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.notifyResourceListeners(AbstractResourceCollection.java:315)
	at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.updateEffectiveState(AbstractResourceCollection.java:156)
	at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.updateEffectiveState(AbstractResourceCollection.java:135)
	at com.inductiveautomation.ignition.designer.project.DesignerProjectTreeImpl.updateEffectiveState(DesignerProjectTreeImpl.java:87)
	at com.inductiveautomation.ignition.designer.project.DesignerProjectTreeImpl.applyChange(DesignerProjectTreeImpl.java:619)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.pullAndResolve(IgnitionDesigner.java:1727)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.lambda$handleUpdate$16(IgnitionDesigner.java:2710)
	at com.inductiveautomation.ignition.client.util.gui.progress.Task$FunctionWrapper.apply(Task.java:251)
	at com.inductiveautomation.ignition.client.util.gui.progress.Task$FunctionWrapper.apply(Task.java:241)
	at com.inductiveautomation.ignition.client.util.gui.progress.Task.lambda$runInternal$3(Task.java:207)
	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.ScheduledThreadPoolExecutor$ScheduledFutureTask.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)

Ignition v(Dev Version)
Java: Azul Systems, Inc. 17.0.14
```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 5, 2025, 7:27pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/5 "2025-06-05T19:27:09Z")

</div>

Huh, funky. I strongly suspect this isn't unique to 8.1.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [June 5, 2025, 7:28pm UTC](https://forum.inductiveautomation.com/t/issue-restoring-from-a-backup-not-containing-a-specific-perspective-view/107102/6 "2025-06-05T19:28:47Z")

</div>

huh -- well, if you want 8.1.48 compliant backups that consistently induce the issue in 8.3 designer and repro steps, lmk.

short version: have perspective view open in designer, restore backup that doesn't contain that view, update project
