[Bug-10710] Session Custom Properties Dissapearing

well.... it has happened again in 8.1.47 @cconnor

Hi Hakeem, thanks for reaching out. I have a few follow-up questions for you while I work on filing a bug ticket:

  1. Were the session props blank on open of the Designer or did they appear to clear sometime after the Designer was already open, for example, after saving the project?
  2. Did all session props dissappear or only custom session props? Only props with bindings?
  3. Did the props dissappear on the Gateway or just in this one Designer? Did the session props reappear after closing and reopening the Designer?

Hi @cconnor , thank you for the quick replay
please find the below answers for your questions

  • Were the session props blank on open of the Designer or did they appear to clear sometime after the Designer was already open, for example, after saving the project?
    Initially, I had created several session custom properties and successfully bound them to some components. Everything was working fine. However, after some time spent working on other views (not involving these session custom properties), I noticed that the project was no longer behaving as expected in the browser. Upon checking the Gateway logs, I saw errors indicating that certain session custom property names were missing from the script attributes. Interestingly, the custom properties still appeared in the Designer, but when I attempted to rebind them to a component for testing, they were no longer available—only one previously created session custom property was visible.
  • Did all session props disappear or only custom session props? Only props with bindings?
    Only the custom session properties disappeared. These properties were not bound to anything at the time.
  • Did the props disappear on the Gateway or just in this one Designer? Did the session props reappear after closing and reopening the Designer?
    The custom session properties did not reappear after closing and reopening the Designer. I had to manually recreate them, though I’ve kept the number of session custom properties limited this time.

Thanks
Dayaraju H

Hello @osolorzano @cconnor ,

We are using 8.1.33 and for the past few months we have faced the session custom property got disappeared (2 times) while i try to update the project from my team mate. 2 of our team members were working in the same project and this has happened while the project is open for both of us & also all the message handlers got affected where in it has linked with session custom property. We have project gateway backup were we could able to restore the same with local ignition host and then we have copy paste the session custom property opened with local ignition designer project with our server ignition designer project. Now the system is running well. I understand issue occurs in 8.1.47, kindly address this issue else we may lose our credibility of our team as well as ignition in the production line.

Looking for your best solution.

Regards,
Sudharsanan

when this last happened to me, I looked in the json file where the session custom props are stored and it was blank; I think it was just {"custom": {}}

Hi @cconnor ,

I'm encountering the same issue again. In the Designer session, the session custom properties are visible under the "Custom" section.
However, when I try to bind a component to one of these custom session properties, they are not available for selection in the binding dialog.


Additionally, in the props.json file, the custom section appears empty:

When I try to access these custom session properties in a script, I get an error stating that the attribute does not exist. This indicates that the session custom properties are not being recognized or persisted correctly at runtime.

Thanks,
Dayaraju

Hi @HAKEEM_DAYARAJU,

Are there any errors in the Designer output console when you notice the issue? What about when you save the project after the issue occurs? Are you able to add a new session custom prop and save the project without issue?

I would like to work with you (and anyone else here) more closely. At this time we do not have replication steps and will need to dive deeper on a system experiencing the issue to understand the cause. I encourage anyone here to reach out to support so we can work together to resolve this issue. Link this forum post so the intake rep knows to connect us.

Hello @Sudharsanan_Mothilal,

The specific circumstances leading up to your custom session props disappearing really sound like the issue that was resolved in 8.1.47. That issue affected bound custom session properties when two or more Designers were open to the same project, making updates at the same time. Did the custom session properties that you saw disappear have bindings? If so, I encourage you to upgrade to 8.1.47 if possible.

I have had the session properties disappear in .48 when there were no designers open.

Yesterday I saw the following

Hi @jpark,

Thanks for reaching out! Did this ExecutionException error pop up when you first opened the Designer?

Is there any more information provided or a stack trace if you select 'full' at the bottom of the error popup?

Were you able to recover your session props by closing and reopening the Designer?

java.util.concurrent.ExecutionException: com.teamdev.jxbrowser.js.JsException: Uncaught TypeError: Cannot read properties of undefined (reading 'createPathPredicate')
	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:222)
	at com.inductiveautomation.perspective.designer.workspace.pageconfig.WorkspaceRootConfig.commit(WorkspaceRootConfig.java:22)
	at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.notifyProjectSaveStart(ViewWorkspace.java:330)
	at com.inductiveautomation.perspective.designer.DesignerHook.notifyProjectSaveStart(DesignerHook.java:560)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.commitAll(IgnitionDesigner.java:1629)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner.handleSave(IgnitionDesigner.java:1394)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleSaveAction(IgnitionDesigner.java:2851)
	at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$5.actionPerformed(IgnitionDesigner.java:2431)
	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(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: com.teamdev.jxbrowser.js.JsException: Uncaught TypeError: Cannot read properties of undefined (reading 'createPathPredicate')
	at com.teamdev.jxbrowser.js.internal.JsObjectImpl.callMethod(JsObjectImpl.java:175)
	at com.teamdev.jxbrowser.js.internal.JsObjectImpl.call(JsObjectImpl.java:153)
	at com.inductiveautomation.perspective.designer.workspace.JavaJsBridge.lambda$invokeFunction$2(JavaJsBridge.java:285)
	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.48 (b2025042910)
Java: Azul Systems, Inc. 17.0.14

But in this case restarting the designer seems to have fixed it. But we did have 2 designers open during this instance. Mine was fine with all the properties.

Hi @cconnor ,

these are the errors in Designer console, duplicated the session custom properties & tried to check them, the same issue occurred — the gateway status logs indicated that the object had no such attribute or property name. I then restarted the Designer, and I noticed that the session custom properties were missing. I recreated them with the same names, saved the changes, and everything started working fine. However, I’m not sure why this issue happened or when it might happen again. For information, only a single Designer & project was open at the time.