Modbus RTU problem in 8.0.4

I just upgraded from 8.0.1 to 8.0.4 and now my Modbus RTU device wont start.
It keeps coming up with the error below. It worked fine before the upgrade.
I’ve tried restarting the gateway, restarting the computer, creating a new device. Every time, this error keeps appearing.
Anyone know what I should try next?

DeviceManagerNamespace	01Oct2019 15:48:06	Device 'Altona_Modbus' failed to start
java.lang.NoClassDefFoundError: Serialio/SerialConfig

at com.inductiveautomation.xopc.drivers.modbus2.serial.ModbusRTUDriver.(ModbusRTUDriver.java:24)

at com.inductiveautomation.xopc.drivers.modbus2.configuration.ModbusRtuDriverType.createDriver(ModbusRtuDriverType.java:50)

at com.inductiveautomation.ignition.gateway.opcua.server.DriverAdapter.startup(DriverAdapter.kt:128)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace$DeviceAddressSpace.onStartup(DeviceManagerNamespace.kt:267)

at com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle.startup(AbstractLifecycle.java:18)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace.createAndStartupDevice(DeviceManagerNamespace.kt:162)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace.access$createAndStartupDevice(DeviceManagerNamespace.kt:40)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace$DeviceSettingsRecordListener$recordUpdated$1.invokeSuspend(DeviceManagerNamespace.kt:222)

at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)

at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:270)

at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:79)

at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)

at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)

at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)

at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace$DeviceSettingsRecordListener.recordUpdated(DeviceManagerNamespace.kt:219)

at com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace$DeviceSettingsRecordListener.recordUpdated(DeviceManagerNamespace.kt:209)

at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.notifyRecordUpdated(PersistenceInterfaceImpl.java:178)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl.doNotifyRecordUpdated(RedundantPersistenceInterfaceImpl.java:88)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.recordUpdated(RedundantPersistenceInterfaceImpl.java:295)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateMessage.notify(RedundantPersistenceInterfaceImpl.java:346)

at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.receiveCall(RedundantPersistenceInterfaceImpl.java:278)

at com.inductiveautomation.ignition.gateway.redundancy.QueueableMessageReceiver.receiveCall(QueueableMessageReceiver.java:47)

at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.dispatchMessage(RedundancyManagerImpl.java:852)

at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl$ExecuteTask.run(RedundancyManagerImpl.java:924)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)

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)

Did you lose the Serial Support (gateway) module during the upgrade?

Yikes, this is just a bug. You’ll have to downgrade until we get it fixed.

Thanks for your help.
Do you think it will work in version 8.0.3, or do I have to go back to 8.0.1 that was working before?

I think 8.0.3 will work. This has to do with the new serial library that we switched to and that was done in 8.0.4.

Thanks Kevin,

I’ve only got a few values to read over Modbus so I’ve just written a script using the system.serial functions and that’s working ok at the moment.
I’ll change back to to the Modbus RTU device if it’s fixed in version 8.0.5

Hi @Kevin.Herron.
Do you know if this has been fixed now?
Will it work if I upgrade to version 8.0.5? or 8.0.6?

It was fixed in 8.0.5. I’m not sure why a release note wasn’t generated because the ticket has one on it…