Acknowledge / Confirm
Acknowledge and Confirm are the two Methods on AcknowledgeableConditionType that move an alarm through its operator-response lifecycle: Acknowledge records that a human has seen it, Confirm records that the underlying cause has been dealt with. Both take an EventId and a comment, and Confirm support is optional.
Two independent state machines
ActiveState tracks the process: the limit is exceeded or it is not, and only the machine changes it. AckedState and ConfirmedState track the human: they change only when a client calls a method. The four combinations are all meaningful, and the two that matter operationally are active and unacknowledged, which needs an operator now, and inactive but unacknowledged, which is a fault that came and went and still needs signing off.
The EventId argument is not optional detail
Both methods take the EventId of the specific state-change event being acknowledged, not the ConditionId. That is deliberate: it prevents an operator from acknowledging a state they never saw, because a newer event on the same condition will make the stale EventId invalid. Cache the EventId of the notification you displayed and pass exactly that one back.
Confirm is optional, Acknowledge is not
AcknowledgeableConditionType makes Acknowledge available on any acknowledgeable condition, while Confirm and ConfirmedState are optional and many servers omit them. Browse for the Confirm method before you build a two-stage workflow in your HMI, and fall back to acknowledge-only rather than showing a button that returns an error. Comment and AddComment are separate from both, and a comment does not acknowledge anything.
Retain, and when an alarm leaves the list
The Retain flag is what keeps a condition on the alarm list, and it typically stays true while the condition is active or unacknowledged. An alarm therefore does not disappear when the process recovers; it disappears when the process has recovered and the operator has acknowledged, and confirmed where confirmation is modelled. Audit events record who acknowledged what, if auditing is enabled on the server.
Example
The four states an operator actually sees, and the method call
ActiveState AckedState meaning
----------- ---------------- --------------------------------------------
Active Unacknowledged live alarm, operator action required
Active Acknowledged seen, still faulted
Inactive Unacknowledged transient fault, still needs sign-off
Inactive Acknowledged done - server normally clears Retain
Call:
ObjectId = the condition instance NodeId
MethodId = Acknowledge (on AcknowledgeableConditionType)
InputArgs = [ EventId ByteString 0x9F2C... <- from the event you showed
Comment LocalizedText "shift 2: chip jam cleared" ]
Stale EventId, superseded by a newer state change -> BadInvalidState
Confirm method absent on this server -> browse first, hide the button
Defined in: Part 9 - Alarms and Conditions.
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.