Issues with scripts and missing projects on gateway restore

We also upgraded from 8.0.15 to 8.0.16RC1 and a bunch of our scripts were broken (one of the error messages was Failed to read class descriptor). We tried to restore the 8.0.15 gateway backup, but a lot of our projects were missing when the gateway was started. We tried restoring a few times and each time there were missing projects, even though they were in the data/projects folder. We rebooted our server and restored again, and everything is back to normal.

I wouldn’t upgrade to 8.0.16RC yet for a production system.

Starting with the scripts issue, which scripts are you referring to? Project scripts? Event scripts? Also, where is that error message coming from, the client logs?

In regards to the missing projects, missing where? The project selection screen when opening a designer? The projects page on the gateway?

Project scripts (the one that seemed to trigger the error Failed to read class descriptor was system.db.runPrepQuery). The errors were coming from the designer, in a red messagebox.

The projects were missing on the project selection screen when opening the designer.

This was a few days ago, so I don’t remember much besides what I added above.

Thanks for the response. Would you be able to provide a gateway backup? I’m can’t reproduce either of those issues, but I may be missing something in my set up.

I’m having the same issue since upgrading to 8.0.16.

15:08:34.440 [AWT-EventQueue-0] ERROR Vision.Components.AdvancedTable - Error invoking extension method.
org.python.core.PyException: Traceback (most recent call last):
  File "<extension-method onCellEdited>", line 53, in onCellEdited
  File "<module:shared.Kanoa.WIP>", line 242, in updateLineProductionData
  File "<module:shared.Kanoa.WIP>", line 1184, in writeLineProductionInfoToTable
		INSERT INTO lineProductionData
		(lineType, modeColor, Site, Area, Validated, [Equipment Path], [Equipment Name], [Equipment Mode Name], [Equipment Mode Type], [Work Order], [Product Code], [Mode Begin Time], [Mode End Time], [Mode Duration], [OEE Infeed Count], [Infeed Rate], Target, Units, [Rate Efficiency], [First Quality], [Quality Status], [OEE Outfeed Count], [OEE Reject Count], [Unplanned Downtime], [Line Downtime Occurrence Count])
		VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
		, [Batch, #00FF00, Conway, Resin, true, Chemical\Conway\Resin\Reactor K1, Reactor K1, Production, Production, 0003162587, RPPC2603, Fri Jan 03 15:35:01 PST 2020, Fri Jan 03 23:04:30 PST 2020, 7.491388888888889, , , , , , 1.0, Approved, 18900, , , ], IGN_CUSTOM, , true, false)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:258)
	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)
java.lang.Exception: java.lang.Exception: Error executing system.db.runPrepUpdate(
		INSERT INTO lineProductionData
		(lineType, modeColor, Site, Area, Validated, [Equipment Path], [Equipment Name], [Equipment Mode Name], [Equipment Mode Type], [Work Order], [Product Code], [Mode Begin Time], [Mode End Time], [Mode Duration], [OEE Infeed Count], [Infeed Rate], Target, Units, [Rate Efficiency], [First Quality], [Quality Status], [OEE Outfeed Count], [OEE Reject Count], [Unplanned Downtime], [Line Downtime Occurrence Count])
		VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
		, [Batch, #00FF00, Conway, Resin, true, Chemical\Conway\Resin\Reactor K1, Reactor K1, Production, Production, 0003162587, RPPC2603, Fri Jan 03 15:35:01 PST 2020, Fri Jan 03 23:04:30 PST 2020, 7.491388888888889, , , , , , 1.0, Approved, 18900, , , ], IGN_CUSTOM, , true, false)

	at org.python.core.Py.JavaError(Py.java:552)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:258)
	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 org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:524)
	at org.python.core.PyObject.__call__(PyObject.java:413)
	at org.python.pycode._pyx191.writeLineProductionInfoToTable$19(<module:shared.Kanoa.WIP>:1186)
	at org.python.pycode._pyx191.call_function(<module:shared.Kanoa.WIP>)
	at org.python.core.PyTableCode.call(PyTableCode.java:171)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:139)
	at org.python.core.PyFunction.__call__(PyFunction.java:413)
	at org.python.pycode._pyx191.updateLineProductionData$2(<module:shared.Kanoa.WIP>:248)
	at org.python.pycode._pyx191.call_function(<module:shared.Kanoa.WIP>)
	at org.python.core.PyTableCode.call(PyTableCode.java:171)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:171)
	at org.python.core.PyFunction.__call__(PyFunction.java:434)
	at org.python.pycode._pyx212.onCellEdited$1(<extension-method onCellEdited>:77)
	at org.python.pycode._pyx212.call_function(<extension-method onCellEdited>)
	at org.python.core.PyTableCode.call(PyTableCode.java:171)
	at org.python.core.PyBaseCode.call(PyBaseCode.java:308)
	at org.python.core.PyFunction.function___call__(PyFunction.java:471)
	at org.python.core.PyFunction.__call__(PyFunction.java:466)
	at org.python.core.PyFunction.__call__(PyFunction.java:456)
	at org.python.core.PyFunction.__call__(PyFunction.java:451)
	at com.inductiveautomation.vision.api.client.components.model.ExtensionFunction.invoke(ExtensionFunction.java:151)
	at com.inductiveautomation.factorypmi.application.components.VisionAdvancedTable$Model.setValueAt(VisionAdvancedTable.java:1799)
	at com.jidesoft.grid.TableModelWrapperImpl.setValueAt(Unknown Source)
	at com.jidesoft.grid.DefaultTableModelWrapper.setValueAt(Unknown Source)
	at com.jidesoft.grid.TableModelWrapperImpl.setValueAt(Unknown Source)
	at com.jidesoft.grid.DefaultTableModelWrapper.setValueAt(Unknown Source)
	at java.desktop/javax.swing.JTable.setValueAt(Unknown Source)
	at com.jidesoft.grid.JideTable.editingStopped(Unknown Source)
	at java.desktop/javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source)
	at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(Unknown Source)
	at java.desktop/javax.swing.DefaultCellEditor.stopCellEditing(Unknown Source)
	at de.javasoft.plaf.synthetica.SyntheticaDefaultTableCellEditor.stopCellEditing(SyntheticaDefaultTableCellEditor.java:123)
	at java.desktop/javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.JTextField.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.JTextField.postActionEvent(Unknown Source)
	at java.desktop/javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBinding(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyBindings(Unknown Source)
	at java.desktop/javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(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.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: Error executing system.db.runPrepUpdate(
		INSERT INTO lineProductionData
		(lineType, modeColor, Site, Area, Validated, [Equipment Path], [Equipment Name], [Equipment Mode Name], [Equipment Mode Type], [Work Order], [Product Code], [Mode Begin Time], [Mode End Time], [Mode Duration], [OEE Infeed Count], [Infeed Rate], Target, Units, [Rate Efficiency], [First Quality], [Quality Status], [OEE Outfeed Count], [OEE Reject Count], [Unplanned Downtime], [Line Downtime Occurrence Count])
		VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
		, [Batch, #00FF00, Conway, Resin, true, Chemical\Conway\Resin\Reactor K1, Reactor K1, Production, Production, 0003162587, RPPC2603, Fri Jan 03 15:35:01 PST 2020, Fri Jan 03 23:04:30 PST 2020, 7.491388888888889, , , , , , 1.0, Approved, 18900, , , ], IGN_CUSTOM, , true, false)
	... 78 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Unable to decode arguments
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.script.ClientDBUtilities._runPrepStmt(ClientDBUtilities.java:282)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:256)
	... 76 common frames omitted
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayResponse$GatewayThrowable: failed to read class descriptor
	at java.io.ObjectInputStream.readNonProxyDesc(null)
	at java.io.ObjectInputStream.readClassDesc(null)
	at java.io.ObjectInputStream.readOrdinaryObject(null)
	at java.io.ObjectInputStream.readObject0(null)
	at java.io.ObjectInputStream.readArray(null)
	at java.io.ObjectInputStream.readObject0(null)
	at java.io.ObjectInputStream.readObject(null)
	at java.io.ObjectInputStream.readObject(null)
	at com.inductiveautomation.ignition.common.Base64.decodeToObjectFragile(Base64.java:985)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.RunPrepStmt.runUpdateQuery(RunPrepStmt.java:43)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.AbstractUpdateQuery.run(AbstractUpdateQuery.java:25)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.AbstractDBAction.invoke(AbstractDBAction.java:68)
	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:414)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
	at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1391)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:500)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
	at java.lang.Thread.run(null)

That is one of the errors we got as well. Also, a frustrating side-note, after we upgraded to 8.0.16 and then rolled back to 8.0.15, the SSL certificate I installed is no longer configured on the gateway, and when I try to configure SSL again, I get that the certificate cannot be verified.

Same thing for me on 8.0.16

Seems like the client scope scripting errors come and go…