I am unsure if this behavior is intentional. I attempted to find relevant forum posts covering this issue but was unable to locate any.
Issue:
The system.tag.query() function in Ignition does not always return all properties associated with a UDT, tag, or alarm.
Example:
Consider a tag with two alarms defined at the UDT level that are not overridden at the instance level. When I use the system.tag.query() function, none of the alarms are returned, even though they are defined at the UDT level.
EDIT:
This is a right click copy JSON output
{
"opcItemPath": {
"bindType": "parameter",
"binding": "ns\u003d2;s\u003d[{Topic}]null.H"
},
"valueSource": "opc",
"dataType": "Boolean",
"historyProvider": "HistDB_Maverick",
"PI_Tag": false,
"Tag_Description": "High Alarm",
"historyEnabled": true,
"deadbandMode": "Off",
"LongID": "KMT_MIDS.OPCIS04:null_PA_H",
"tagGroup": "Default",
"enabled": true,
"opcServer": "ACM OPC UA Server",
"name": "HIGH_ALARM",
"tagType": "AtomicTag"
}
In most cases, this behavior does not cause issues, and updating the tag functions as expected. However, my update process depends on retrieving tag configurations using system.tag.query(). Occasionally, when checking for the existence of an alarm or a built-in Ignition alarm property within the retrieved configuration, the check fails—even though the property is clearly present in the tag definition.
Below is an example of a tag with two alarms:
Has anyone else encountered this behavior? Is there a known explanation or workaround for ensuring that all expected properties are consistently returned?
It appears that my error output file is missing a built-in Ignition property that should be present on every alarm. This issue is inconsistent and does not always occur.
![]()
Additional Notes:
I used the Ignition tag report tool to return only alarms and noticed that the "On Change" alarm does not include a priority, despite being set to "Low" at the UDT definition level. However, if I manually update the priority at the UDT definition level, it correctly appears in the same query. This suggests that the issue is not due to a coding error on my part but rather an aspect of how Ignition handles alarm properties in UDTs that I have yet to fully understand.

