Suppress DDATA publishing for tags in "Error" state without disabling them — MQTT Transmission 5.0.4

Environment: Ignition 8.3.7, MQTT Transmission 5.0.4, Sparkplug B to a third-party MQTT broker. OPC UA source is a third-party server; Ignition is the OPC UA client (subscription based).

Problem: When an OPC UA node becomes unavailable (source-server update, or the tag is deleted upstream), Ignition reports Bad_NodeIdUnknown and refreshes the tag’s timestamp every ~10 s. This is probably wanted behavior for a failed-item retry loop, i have not found the setting which controls this. Each refresh produces a DDATA with is_null=true and Quality 0xC0000300. That’s ~6 null publishes per minute per tag, across every transmitter subscribed to it, for as long as the outage lasts.

reproduction: Take a working subscribed OPC tag and change its Item Path to a non-existing node (simulating a deletion). Observe DDATAs has null values for the tag every 10 second.

Question: Is there a MQTT Transmission-side setting or supported scripting to skip publishing metrics when the tag is in “error”, without a Transmitter refresh on every transition? Or any other suggestion to handle this?

Pictures:
Decoded DDATA


Ignition tag that has the “null” values sendt:

This error tag is of course a transient problem and will be fixed, but we don’t want to automatically delete tags.

I think this is probably a question to bring up with Inductive Automation. Transmission publishes a metric any time the tags ‘qualified value’ changes. That is either the value, the quality, or the timestamp changes. Because these are changing in the platform, Transmission includes them as real change events. Maybe Ignition has a way to prevent the change events from occurring when in this state?

1 Like

Good point. I will update this post after I receive recommendations from ignition.