A Dev deployment mode that points an OPC UA connection at a simulated PLC server while Prod points the same connection at the real PLC's server needs one thing: a mode-specific definition of that connection with a different Endpoint. The gateway runtime resolves per-mode endpoints. What failed is the Gateway web UI. Builds before 8.3.1 did not allow editing the endpoint of OPC connections configured in other deployment modes. 8.3.1 fixed that, and the fix exposed a second bug: the Endpoint menu item is hidden whenever the active definition is anything other than core. That second bug is fixed in 8.3.4. On affected builds, the config API or direct edits to the on-disk resource files produce a working per-mode endpoint.
Which gateway build decides whether the Endpoint override is editable?
Read the version and build string from the gateway's status overview before planning anything. The build determines whether you configure this in the UI or go around it.
| Gateway build | Endpoint editable in a non-core mode definition? | Behavior |
|---|---|---|
| Before 8.3.1 | No | Endpoint cannot be edited for OPC connections configured in other deployment modes (tracked as IGN-13211) |
| 8.3.1 through 8.3.3 | Only when the active definition is core
|
Endpoint menu item is not displayed if the active definition is Dev, QA, or any other non-core mode. Build 8.3.3 (b2026012009) showed the override without an endpoint option. |
8.3.2 nightly after b2025110718
|
Original defect no longer reproducible | The secondary hidden-menu bug still applies when the active definition is non-core |
| 8.3.4 | Yes | Endpoint menu item is available with the gateway deployed in a non-core mode such as QA. The fix first shipped in the release-candidate phase, so confirm you are on a released 8.3.4 or later build. |
Check: record the exact build string. If it is 8.3.4 or later, go to the UI procedure. Otherwise, use the workaround sections.
How does the gateway pick which endpoint the OPC UA client dials?
In Ignition 8.3, each OPC UA connection is a configuration resource. It has a core definition and optional definitions for each deployment mode. The gateway's configured deployment mode selects the active definition. Fields not defined in the mode definition inherit from core. The request path runs as follows:
- A tag subscribes through a named OPC connection. The tag stores the connection name and the OPC item path (node ID), not the server address.
- The gateway resolves that connection name against the active definition for its current deployment mode.
- The gateway's OPC UA client opens TCP to the host and port in that definition's endpoint URL.
- The client negotiates the secure channel (security policy, message mode, certificate exchange) and opens a session.
- The client creates monitored items for every tag path using that connection. Values flow back on the same session.
The connection name must be identical across core, Dev, and Prod definitions. Only the endpoint, and the security settings tied to it, should differ. Tags then need no change between modes. They follow whichever server the active definition dials. This design only works if the simulated server exposes the same node IDs as the real one; that pitfall is covered later.
Check: open the connection in the Gateway web UI and identify which definition is marked active. On an affected build, an active Dev definition is exactly the condition that hides the Endpoint menu.
Is each OPC UA server reachable from the gateway host?
Prove the physical and transport path before touching configuration. A mode override pointed at an unreachable host looks identical to a misconfigured override.
| Mode | Target server | Where to read the endpoint URL | Transport check from gateway host |
|---|---|---|---|
| Dev | Simulated PLC OPC UA server | Simulator's endpoint configuration | TCP connect to the simulator host and port |
| Prod | Real PLC OPC UA server (embedded or gateway product) | PLC or server product's OPC UA settings | TCP connect to the PLC/server host and port |
- Collect the full
opc.tcp://endpoint URL for each server from that server's own configuration. - From the gateway host, test TCP reachability to each host and port. On Windows, use
Test-NetConnection -ComputerName <host> -Port <port>. On Linux, usenc -vz <host> <port>. - Confirm that the hostname each server advertises in its GetEndpoints response resolves from the gateway host. A server that answers discovery with an internal hostname the gateway cannot resolve fails after discovery, even when the IP in your URL is reachable.
- Note which security policies and message modes each server offers. The simulator and the real server often differ, and the mode definitions must reflect that.
Check: both TCP tests succeed from the gateway host itself, not from an engineering laptop, and both advertised hostnames resolve.
How do you set the Endpoint override in the Gateway UI on 8.3.4?
- Open the OPC UA connection in the Gateway web UI. Keep the connection name as the tags already reference it.
- Leave
corepointed at whichever server you treat as the default. Many sites pointcoreat production so an unconfigured mode never talks to a simulator. - Select the Dev definition, or create it if the connection has no Dev definition yet.
- Open the connection's menu and select Endpoint. On 8.3.4 this item appears even while the gateway runs in a non-core mode.
- Enter or discover the simulator's endpoint URL. Pick the security policy and message mode the simulator offers.
- Save. Repeat for any other mode, such as QA or Prod, that must differ from
core.
Check: reopen the Dev definition and confirm the endpoint shows the simulator URL while core still shows the production URL.
What are the workarounds on 8.3.1 through 8.3.3?
The runtime honors a per-mode endpoint on these builds. Only the UI path is blocked when the active definition is non-core.
| Option | Method | Trade-off |
|---|---|---|
| Upgrade to 8.3.4 or later | Standard gateway upgrade | Cleanest fix. Requires an upgrade window. |
Edit while core is the active definition |
The menu is hidden only when the active definition is non-core, so a gateway deployed in core exposes Endpoint |
Switching a gateway's deployment mode moves every mode-aware resource to its core values while you edit. Acceptable on a bench gateway, not on a running production gateway. |
| Config API | Write the Dev definition directly with an API key that has config write permission | Scriptable and repeatable. Requires reading your build's API documentation for the resource paths. |
| On-disk resource edit | Duplicate the core connection resource into the mode's resource area and change the endpoint |
Works offline. A malformed file breaks the connection resource. |
Check: pick one option per gateway and record it. Mixing UI edits and file edits on the same resource makes the effective definition hard to trace.
How do you duplicate the core connection into a mode via the API or on disk?
- Take a gateway backup before any direct edit.
- Read the full
coredefinition of the OPC UA connection. Use the config API, with resource paths taken from the API documentation served by your gateway build, or the resource file under thecoreconfiguration directory. - Create the Dev definition with the same resource name. Via the API, post the copied configuration to the Dev mode. On disk, copy the resource into the Dev mode's resource directory at the same relative path it occupies under
core. - Change only the endpoint URL, plus the security policy and message mode if the simulator's differ. Leave the connection name untouched.
- Restart or reload the gateway configuration as your build requires, so the file-system change is picked up.
Check: the Gateway UI lists a Dev definition for the connection whose stored endpoint is the simulator URL, even if the UI will not let you edit it on this build.
Why do tags fault or go bad after the endpoint changes between modes?
| Symptom | Likely cause | Decisive check |
|---|---|---|
| Connection stuck connecting or faulted in Dev only | Simulator host or port unreachable, or advertised hostname unresolvable | Repeat the TCP and DNS checks from the gateway host |
| Connection fails during secure channel setup | Simulator's certificate not trusted by the gateway, or the gateway's client certificate not trusted by the simulator | Inspect the gateway's OPC UA client certificate trust list and the simulator's rejected-certificates list. Each server keeps its own trust store. |
| Security policy rejected | Dev definition inherited the production security policy, which the simulator does not offer | Compare the definition's policy against the simulator's endpoint list |
| Connected, but tags show bad quality | Node IDs or namespace URIs in the simulator do not match the real server | Browse the simulator and compare item paths for a sample of tags |
| Prod gateway reading simulated values | Prod gateway deployed in the wrong mode, or core points at the simulator |
Read the gateway's configured deployment mode and the core endpoint |
| Endpoint edit saved but runtime unchanged |
core edited instead of the mode definition, or file edit not reloaded |
Reopen the mode definition and confirm the stored endpoint |
Check: the connection reports Connected in Dev, and a sample tag from each area of the tag tree shows good quality against the simulator.
How do you prove Dev and Prod each reach their own server?
- On the Dev gateway, confirm the configured deployment mode is Dev and the OPC UA connection shows Connected.
- On the simulator, force a distinctive value on one simulated tag. Confirm the matching Ignition tag shows that value with good quality.
- On the simulator's session or diagnostics view, confirm a client session exists from the Dev gateway's IP address.
- On the Prod gateway, confirm the configured deployment mode is Prod, or
coreif Prod inherits. Confirm the connection's effective endpoint is the real PLC server. - On the real PLC's OPC UA server, confirm a session exists from the Prod gateway's IP address, and none from the Dev gateway.
- Compare one live PLC value, read from the controller's programming software, against the same tag on the Prod gateway. Matching values and timestamps prove Prod dials the real PLC while Dev stays on the simulator.
Frequently asked questions
Why does the Endpoint option not appear in my Ignition 8.3 OPC UA connection override?
Builds before 8.3.1 did not allow editing endpoints for OPC connections configured in other deployment modes. On 8.3.1 through 8.3.3, the Endpoint menu item is hidden whenever the active definition is not core. Upgrade to 8.3.4, or write the mode definition through the config API or on disk.
Why does the Endpoint menu disappear when the gateway runs in Dev or QA mode?
On 8.3.1 through 8.3.3, the UI shows Endpoint only when the active definition is core. Deploying the gateway in Dev or QA makes that mode's definition active and hides the item. The fix is in 8.3.4.
Why does Ignition 8.3.3 still not let me edit the OPC UA endpoint per deployment mode?
Build 8.3.3 (b2026012009) contains the 8.3.1 fix but not the secondary hidden-menu fix, which shipped in 8.3.4. With a non-core active definition, the override still lacks the Endpoint option.
Can Ignition Dev mode point at a simulated OPC UA server without using the Gateway UI?
Yes. Copy the core connection definition into the Dev mode through the config API or the on-disk resource files, keep the same connection name, and change only the endpoint URL and matching security settings. Then reload or restart the gateway.
Why does my OPC UA connection fault after switching deployment modes?
The new endpoint is usually unreachable from the gateway host, advertises a hostname the gateway cannot resolve, or rejects the certificate or security policy inherited from core. Test TCP from the gateway host, check both certificate trust lists, and match the security policy to what the new server offers.