Manual configuration of OPC UA Client Connections fails until gateway is rebooted

Setup:
Version: 8.1.0 (b2020110211) on Windows Server 2019 Essentials VM (VirtualBox)
Host: Ubuntu 20.04.1 LTS

I add an OPC Client connection - OPC UA
Skip to advanced config
Enter my settings manually and apply.
The connection initially shows as faulted and I get the error: no matching endpoints found (see below)
I then restart the gateway in task manager - services. Then everything is happy.

UaException: status=Bad_ConfigurationError, message=no matching endpoints found

	at com.inductiveautomation.ignition.gateway.opcua.client.ManagedClientKt.initialize(ManagedClient.kt:127)

	at com.inductiveautomation.ignition.gateway.opcua.client.ManagedClientKt$initialize$1.invokeSuspend(ManagedClient.kt)

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

	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)

	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)

	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)

	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)

	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)


8.1.0 (b2020110211)
Azul Systems, Inc. 11.0.7

Are you connecting to a 3rd party OPC UA server or making / reconfiguring the connection to Ignition’s own OPC UA server?

3rd party OPC server - Siemens Simatic Net V16

Any chance you can delete the configuration, start a Wireshark capture, then run through the configuration again? And at the end instead of restarting the gateway service just try edit/saving the OPC UA connection without making any changes.

Screenshots of the advanced configuration and the regular settings page would be good too.

Do you need all the advanced settings on the settings page?

Attached wireshark capture and screenshots.
opc.zip (2.3 MB)

Editing and saving did not help.

If you turn the logger “com.inductiveautomation.ignition.gateway.opcua.client.ClientManager” to DEBUG and either wait or edit/save do you start seeing messages from it in the logs? What are they?

Nevermind I see the issue but can’t imagine why a gateway restart has anything to do with it.

The URL used/returned by the server is “opc.tcp://SimaticNETV16:55105”. You need to put the IP address (10.0.1.156) into the Host Override advanced setting.

If you had gone through the wizard instead of skipping to advanced this would/should have been done for you.

edit: err, actually, I think you need to use that exact endpoint URL (opc.tcp://SimaticNETV16:55105) as the Endpoint URL setting as well. And then whether or not you heed Host Override depends on if your Ignition gateway machine can resolve “SimaticNETV16” via DNS or not.

Why does the URL need to be so exact? I also noticed it’s case sensitive. Normally URLs are not.
And after a restart it accepts the configuration without the hostname.

URLs absolutely are case-sensitive, though some servers, especially web servers, may choose not to treat them as such.

It’s specific because that’s one of the criteria it uses to decide whether the server is still configured the same, or even the same server, as the one you originally set up the connection against.

After it suddenly starts working post-restart another Wireshark capture along with the logger I previously mentioned and screenshots of the config to verify nothing changed would be interesting.

My thinking is that if it can sort itself out through a gateway restart then why can’t it do the same when the new config is originally added?

I do notice that the endpoint settings for the connection after reboot has the endpoint URL cleared but all other settings retained. I’ll get you another capture.

Okay, this is a bug, but it's also why it's working even though you had configured it incorrectly. There is a provision in the logic to just skip the comparison if the configured endpoint URL is empty because it might not exist on upgrade from some old versions.

If you don't like the sharp edges of the advanced configuration then don't use it - step through the wizard instead.

I'm not complaining. Just trying to understand the process.

Wireshark capture during reboot
reboot.zip (1.8 MB)

Thanks, I’m certain though that the endpoint URL going blank is why this works. I’m going to open up a bug ticket for this.

Side note: is it possible to add wireshark capture files to the allowed attachments list?

1 Like

Hmm. Good idea. I’ll try to add it.

Ok, .cap and .pcap should both be allowed now…

2 Likes

Is the discovery server only used to advertise available endpoints? Or is there additional functionality that it is used for? If the endpoint is known (along with security settings) is there any need or purpose in involving the discovery server at all?