# OPCUA Connection on Ignition 8.3.1 with Stratus ZTC Edge

**URL:** <https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968>\
**Category:** Ignition\
**Created:** [November 5, 2025, 6:32pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968 "2025-11-05T18:32:59Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![tpile](https://avatars.discourse-cdn.com/v4/letter/t/e274bd/32.png) [@tpile](https://forum.inductiveautomation.com/u/tpile)\
**Post date:** [November 5, 2025, 6:33pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/1 "2025-11-05T18:33:00Z")

</div>

I have a Stratus ZTC Edge machine which has an OPCUA server to allow an OPC client to get status information about the machine and operating environment. I was able to connect and read the topics using Ignition 8.1. I am now trying to connect using an Ignition 8.3.1 system. I have disabled security and certificates for testing. I get the following error when trying to connect. Has anyone else seen this?

ava.lang.NullPointerException: Parameter specified as non-null is null: method com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s, parameter $this$getPlaintextString  
at com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s(SecretConfigKtx.kt)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 5, 2025, 7:18pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/2 "2025-11-05T19:18:29Z")

</div>

> [@tpile](#):
>
> ava.lang.NullPointerException: Parameter specified as non-null is null: method com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s, parameter $this$getPlaintextString  
> at com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s(SecretConfigKtx.kt)

Can you post the full logs?

I think this means something is wrong with the OPC UA connection configuration... missing/empty password maybe?

---

<div class="post-metadata">

**Author:** ![tpile](https://avatars.discourse-cdn.com/v4/letter/t/e274bd/32.png) [@tpile](https://forum.inductiveautomation.com/u/tpile)\
**Post date:** [November 5, 2025, 7:46pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/3 "2025-11-05T19:46:12Z")

</div>

Thanks for the response. The OPCUA Server is setup for anonymous connection since it is for inhouse testing.

ava.lang.NullPointerException: Parameter specified as non-null is null: method com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s, parameter $this$getPlaintextString  
at com.inductiveautomation.ignition.gateway.secrets.SecretConfigKtx.getPlaintextString-gIAlu-s(SecretConfigKtx.kt)  
at com.inductiveautomation.ignition.gateway.opcua.client.connection.OpcUaConnectionExtensionPoint.create(OpcUaConnectionExtensionPoint.kt:42)  
at com.inductiveautomation.ignition.gateway.opcua.client.connection.OpcUaConnectionExtensionPoint.create(OpcUaConnectionExtensionPoint.kt:19)  
at com.inductiveautomation.ignition.gateway.opc.OpcConnectionExtensionPoint.create(OpcConnectionExtensionPoint.java:64)  
at com.inductiveautomation.ignition.gateway.opc.OpcConnectionManagerImpl.createAndStartConnection(OpcConnectionManagerImpl.java:390)  
at com.inductiveautomation.ignition.gateway.opc.OpcConnectionManagerImpl$OpcConnectionResourceHandler.onResourceUpdated(OpcConnectionManagerImpl.java:466)  
at com.inductiveautomation.ignition.gateway.config.NamedResourceHandler$Lifecycle.onAfterChanges(NamedResourceHandler.java:713)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionLifecycle$LifecycleResourceListener.onAfterChanges(ResourceCollectionLifecycle.java:183)  
at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.notifyListener(AbstractResourceCollection.java:386)  
at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.notifyResourceListeners(AbstractResourceCollection.java:315)  
at com.inductiveautomation.ignition.common.resourcecollection.AbstractResourceCollection.updateEffectiveState(AbstractResourceCollection.java:156)  
at com.inductiveautomation.ignition.common.resourcecollection.RuntimeResourceCollection.applyChange(RuntimeResourceCollection.java:267)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionLifecycleFactory$1.lambda$updateOrStartAffected$5(ResourceCollectionLifecycleFactory.java:210)  
at java.base/java.util.ArrayList.forEach(Unknown Source)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionLifecycleFactory$1.updateOrStartAffected(ResourceCollectionLifecycleFactory.java:190)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionLifecycleFactory$1.collectionUpdated(ResourceCollectionLifecycleFactory.java:167)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionManagerImpl.notifyCollectionChanged(ResourceCollectionManagerImpl.java:1610)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionManagerImpl.lambda$fireCollectionChanged$31(ResourceCollectionManagerImpl.java:1589)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionManagerImpl.lambda$submitToQueue$30(ResourceCollectionManagerImpl.java:1574)  
at com.inductiveautomation.ignition.gateway.resourcecollection.ResourceCollectionManagerImpl.lambda$wrapNotificationTask$0(ResourceCollectionManagerImpl.java:204)  
at com.inductiveautomation.ignition.common.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:238)  
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)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/e/fec226dbbf4ac6ed3888d011614b51511b7dc976.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 5, 2025, 7:48pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/4 "2025-11-05T19:48:25Z")

</div>

Ok, it seems you may have modified the "Key Store Alias Password" field (advanced setting) to be empty.

By default, the "Key Store Alias" is "client" and the "Key Store Alias Password" should be "password". Most people will never need to change these.

---

<div class="post-metadata">

**Author:** ![tpile](https://avatars.discourse-cdn.com/v4/letter/t/e274bd/32.png) [@tpile](https://forum.inductiveautomation.com/u/tpile)\
**Post date:** [November 5, 2025, 8:35pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/5 "2025-11-05T20:35:34Z")

</div>

Kevin,

Thanks, That fixed it.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 5, 2025, 8:38pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/6 "2025-11-05T20:38:05Z")

</div>

We should probably make that failure mode a little more graceful...

---

<div class="post-metadata">

**Author:** ![ntheuer](https://avatars.discourse-cdn.com/v4/letter/n/ccd318/32.png) [@ntheuer](https://forum.inductiveautomation.com/u/ntheuer)\
**Post date:** [November 24, 2025, 4:25pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/7 "2025-11-24T16:25:03Z")

</div>

I ran through this to fix the connection on one of my OPC-UA servers, and it was successful. But this forces me to re-create my tags. when I point my tags at the new location, I am getting nothing but bad tags. Without having the OPC client anymore (huge groan) I don’t really have a way of reading this to test it. Any thoughts or help please?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/4/b4de116ff927761849cc68c298136b5b7aab75a8.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 24, 2025, 4:44pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/8 "2025-11-24T16:44:56Z")

</div>

> [@ntheuer](#):
>
> But this forces me to re-create my tags. when I point my tags at the new location, I am getting nothing but bad tags

Why do you need to create new tags?

---

<div class="post-metadata">

**Author:** ![ntheuer](https://avatars.discourse-cdn.com/v4/letter/n/ccd318/32.png) [@ntheuer](https://forum.inductiveautomation.com/u/ntheuer)\
**Post date:** [November 24, 2025, 4:56pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/9 "2025-11-24T16:56:55Z")

</div>

something about red lion when I restart the OPC-UA server it changes the item path and I have to re-point it at the correct one

![image](https://us1.discourse-cdn.com/inductiveautomation/optimized/3X/3/9/394f5049161ed52761a86bb1a2e8864c06cbab4e_2_690x35.png)

I can see all my tags here, but no matter what option I’ve tried the parent option and all the child options (as text label, name, etc) but they all return ‘bad’

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/3/730e6aba1ef83aa7c14faa0f80df2d20962eac8a.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 24, 2025, 4:58pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/10 "2025-11-24T16:58:17Z")

</div>

If the RedLion OPC UA server changes its NodeIds on each reboot then it is plainly broken and you need to contact them for support.

I'm not sure how this connects to what this thread was originally about.

There is a different bug with Red Lion servers that we've added a workaround/fix for in 8.3.2(?) - the immediate work around before 8.3.2 is available is to check the "Deprecated DataType Dictionary Support" advanced setting on the OPC UA connection.

---

<div class="post-metadata">

**Author:** ![ntheuer](https://avatars.discourse-cdn.com/v4/letter/n/ccd318/32.png) [@ntheuer](https://forum.inductiveautomation.com/u/ntheuer)\
**Post date:** [November 24, 2025, 5:49pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/11 "2025-11-24T17:49:59Z")

</div>

Ever since I upgraded to 8.3 I have been disconnected from all of my OPC-UA connections for red lion. Changing the password to ‘password’ like you mentioned allowed me to connect to the server under my connections tab, but it still won’t publish any tags to the tag provider. All I get is ‘Bad’, and there is no more opc client to easily read the source value to get a determination of where the issue is coming from

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 24, 2025, 5:50pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/12 "2025-11-24T17:50:31Z")

</div>

Try the workaround I mentioned above.

---

<div class="post-metadata">

**Author:** ![ntheuer](https://avatars.discourse-cdn.com/v4/letter/n/ccd318/32.png) [@ntheuer](https://forum.inductiveautomation.com/u/ntheuer)\
**Post date:** [November 24, 2025, 6:16pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/13 "2025-11-24T18:16:35Z")

</div>

workaround fixed it. Thank you so much! any chance that opc client is going to get a 8.3 version?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 24, 2025, 6:18pm UTC](https://forum.inductiveautomation.com/t/opcua-connection-on-ignition-8-3-1-with-stratus-ztc-edge/111968/14 "2025-11-24T18:18:22Z")

</div>

The OPC Quick Client is currently targeted at 8.3.3.
