UaExpert OPC-Client error BadNonceInvalid

With Ignition 7.4.2 (b953) i get an error when trying to connect form the UaExpert OPC-Client (using Version 1.2.1 164). I think this worked without problems when i last tried with 7.3.x.
Interestingly the connection works if i a connection to another Client (OPC UA .NET Client from Siemens) is already opened.

Here is the gateway stacktrace (The ‘End of stream reached’ warnings appear even when the connection is successfull):

INFO   | jvm 1    | 2012/05/01 11:58:01 | WARN  [TCPServerChannel              ] [11:58:01,685]: Connection lost due to IOException.
INFO   | jvm 1    | 2012/05/01 11:58:01 | java.io.IOException: End of stream reached.
INFO   | jvm 1    | 2012/05/01 11:58:01 | 	at com.inductiveautomation.common.iosession.socket.AsyncSocketIOSession.run(AsyncSocketIOSession.java:95)
INFO   | jvm 1    | 2012/05/01 11:58:01 | 	at java.lang.Thread.run(Thread.java:722)
INFO   | jvm 1    | 2012/05/01 11:58:04 | WARN  [CreateSessionService          ] [11:58:04,409]: Returning ServiceFault for request: com.inductiveautomation.opcua.types.messages.CreateSessionRequest@1421fc5.  StatusCode=StatusCode[0x80240000, Severity=Bad, Subcode=Bad_NonceInvalid]
INFO   | jvm 1    | 2012/05/01 11:58:04 | DEBUG [CreateSessionService          ] [11:58:04,409]: Error:
INFO   | jvm 1    | 2012/05/01 11:58:04 | StatusCode[0x80240000, Severity=Bad, Subcode=Bad_NonceInvalid]: Bad_NonceInvalid
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.xopc.server.core.services.session.CreateSessionService.executeInternal(CreateSessionService.java:56)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.xopc.server.core.services.session.CreateSessionService.executeInternal(CreateSessionService.java:27)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.xopc.server.core.services.AbstractService.execute(AbstractService.java:53)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.xopc.server.stack.AbstractUAServer$RequestServer.run(AbstractUAServer.java:69)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:526)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.lang.Thread.run(Thread.java:722)
INFO   | jvm 1    | 2012/05/01 11:58:04 | WARN  [TCPServerChannel              ] [11:58:04,409]: Connection lost due to IOException.
INFO   | jvm 1    | 2012/05/01 11:58:04 | java.io.IOException: End of stream reached.
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at com.inductiveautomation.common.iosession.socket.AsyncSocketIOSession.run(AsyncSocketIOSession.java:95)
INFO   | jvm 1    | 2012/05/01 11:58:04 | 	at java.lang.Thread.run(Thread.java:722)

Are you connecting with or without security?

This sounds vaguely familiar, I think we addressed it in some way at the interop a couple months ago…

Also; what version of UaExpert are you using?

1 Like

Hi,
thank you for the hint. I was connecting with security disabled. Setting the client security to Basic128/Sign&Encrypt fixed the problem. UaExpert version is 1.2.1 164 (the current version).
It is still interesting that it works without security if another client is connected. The other client needs anonymous access, so i think it uses no security as well.

1 Like

This is actually fixed in the 7.5 branch of the OPC-UA module, along with a couple other minor fixes from the IOP.