Transaction Groups broken after upload

I have two Ignition instances, a production one and a test one running in demo mode. This morning I had made a change to a project on the production one and did an export to upload to the test instance. I uploaded the .proj file and overwrote the existing project. Opening the project in the designer showed the transaction groups grey and without the green “running” triangle. But the Ignition Status page showed all transaction groups running and data was still getting logged into the test database. Stopping and restarting the transaction groups in Designer had no effect, they were still greyed out without the running icon. There were no errors logged on the console.

So, then I just deleted the project out of Ignition entirely and re-uploaded it. At that point, all the transaction groups in the Designer were showing in their “broken” state. The console log has errors for each transaction group of the form: java.lang.IllegalArgumentException: No such project: 26.

Taking a project export from one machine and uploading to another should work, shouldn’t it?

Here is the full stack trace. The text “[Deleted Project]” is actually in the original; I did not change that:

9:17:22 AM SQL Bridge.[Deleted Project].My_Transaction_group triggered Unable to start group.
java.lang.IllegalArgumentException: No such project: 26
at com.inductiveautomation.ignition.gateway.project.ProjectManagerImpl.cache(ProjectManagerImpl.java:294)
at com.inductiveautomation.ignition.gateway.project.ProjectManagerImpl.getProjectTagManager(ProjectManagerImpl.java:1096)
at com.inductiveautomation.factorysql.groups.AbstractGroup.createEvaluationContext(AbstractGroup.java:419)
at com.inductiveautomation.factorysql.groups.AbstractGroup.startExecution(AbstractGroup.java:268)
at com.inductiveautomation.factorysql.FSQLProjectRunner.loadGroupResource(FSQLProjectRunner.java:296)
at com.inductiveautomation.factorysql.FSQLProjectRunner.loadProject(FSQLProjectRunner.java:221)
at com.inductiveautomation.factorysql.FSQLProjectRunner.startup(FSQLProjectRunner.java:125)
at com.inductiveautomation.factorysql.FactorySQLGatewayHook.loadProject(FactorySQLGatewayHook.java:366)
at com.inductiveautomation.factorysql.FactorySQLGatewayHook$FSQLProjectListener.projectAdded(FactorySQLGatewayHook.java:402)
at com.inductiveautomation.ignition.gateway.project.ProjectManagerImpl.fireProjectAdded(ProjectManagerImpl.java:986)
at com.inductiveautomation.ignition.gateway.project.ProjectManagerImpl$RecordListener.recordAdded(ProjectManagerImpl.java:1396)
at com.inductiveautomation.ignition.gateway.project.ProjectManagerImpl$RecordListener.recordAdded(ProjectManagerImpl.java:1387)
at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.notifyRecordAdded(PersistenceInterfaceImpl.java:174)
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl._notifyRecordAdded(RedundantPersistenceInterfaceImpl.java:84)
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.recordAdded(RedundantPersistenceInterfaceImpl.java:291)
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordAddedMessage.notify(RedundantPersistenceInterfaceImpl.java:366)
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.receiveCall(RedundantPersistenceInterfaceImpl.java:283)
at com.inductiveautomation.ignition.gateway.cluster.QueueableMessageReceiver.receiveCall(QueueableMessageReceiver.java:45)
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.dispatchMessage(RedundancyManagerImpl.java:624)
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl$ExecuteTask.run(RedundancyManagerImpl.java:645)
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:526)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)

In short, yes. That should work providing both Ignition Gateways are of the same version.

What version of Ignition/Java are you running? Are both machines running the same version of Ignition?

They’re both running Ignition 7.5.0 on Linux (64 bit, I think). The test machine is running Java 1.6.0_24, production has Java 1.6.0_22.

Ah, it looks like you’ve come across an issue we had with uploading/overwriting a project. It was fixed in 7.5.2.

You can grab the latest version of Ignition here:

http://inductiveautomation.com/downloads