OPC UA Module Faulted: Collection is Empty

I’m attempting to use a PI Connector to Historize data using Ignition’s OPC UA Server as the interface. However, when I restarted the ignition gateway the OPC UA Module now faults with an error that the collection is empty? How do I address this?

java.lang.IllegalArgumentException: Collection is empty
at java.base/java.util.EnumSet.copyOf(Unknown Source)
at com.inductiveautomation.ignition.gateway.opcua.OpcUaModule$setup$config$1.(OpcUaModule.kt:245)
at com.inductiveautomation.ignition.gateway.opcua.OpcUaModule.setup(OpcUaModule.kt:226)
at com.inductiveautomation.ignition.gateway.opcua.OpcUaModuleHook.setup(OpcUaModuleHook.kt)
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.setup(ModuleManagerImpl.java:2407)
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.setup(ModuleManagerImpl.java:392)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1161)
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:288)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:732)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:666)
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:539)
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)

8.1.9 (b2021080617)
Azul Systems, Inc. 11.0.11

Blockquote

Hmm. It looks like you somehow have an empty Security Policy List setting under OPC UA > Server Settings, despite there being a field validator that should prevent this.

You’ll have to do a little update query on the internal DB to fix this.

Go to http://localhost:8088/web/status/sys.internaldb (or whatever your gateway address is) and run this query:

update opcuaserversettings set securitypolicylist="None,Basic256Sha256"

Then restart the gateway.

edit: oops, the validator is only validating the policies but not actually enforcing that it’s non-empty :man_facepalming:

Thanks. Ran the query and restarted and the module is working now.