Galaxy native alarm ack reports success on an unconfirmed gateway OK; the ack never reached Galaxy (H6) #869
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the #614 H6 live gate on 2026-11-11 against the DEV Galaxy on VD03 (one owner-approved ack of
CVDAisle_1.TableAlarms_008.RuntimeAlertat 17:37:55Z).What happened: OtOpcUa's
Acknowledgereturned Good and the condition went Acknowledged in OPC UA. The ack never reached Galaxy:.Ackedstayed False and.AckMsgstayed empty, checked at 17:39Z and 17:40Z.Runtime.dbo.v_AlarmEventHistory2has no ACK row up to 17:46Z.Cause on our side: the gateway answers OK both when an ack is applied and when it is only sent but unconfirmed, and its docs tell clients to watch the alarm stream for the real transition.
GatewayGalaxyAlarmAcknowledger.EvaluateReplytreats that OK as success, never logs the gateway's diagnostic message, and never waits for Galaxy's own acknowledge. So the existing revert-on-failure path never fires, and ScadaBridge and other OPC UA clients believe the alarm was handled when it wasn't.Fix: treat an unconfirmed OK as pending. Confirm through the alarm stream or the
.Ackedattribute within a bounded window. On timeout, revert the condition to Unacknowledged and return or record a Bad status (Uncertain at most). Log the gateway's diagnostic message.Why the gateway-side ack didn't stick (dropped unconfirmed write, account permission, or gateway version) needs the VD03 gateway log around 17:37:55Z (see mxaccessgw#226).
Fixed in OtOpcUa. An unconfirmed gateway OK now waits (AlarmAck.ConfirmTimeoutMs, default 10 s) for Galaxy's acknowledged transition, otherwise the condition reverts to Unacknowledged with BadTimeout and the gateway diagnostic is logged. A projector bug that let any transition settle a pending ack is also fixed. Why the gateway didn't apply the VD03 ack is tracked in mxaccessgw#226; the live H6 re-run stays on #614. Pushed to master in
e857135e..7a27ef1f; full suite green (20 projects, 0 failures, 0 warnings).