This behavior is probably by design, but I wonder if there is a way to change the behavior.
Let’s say a service is Critical, it’s a known problem, so we Ack it with no expiration, with a ticket number in the comment. We expect when it comes back to the OK state, both the Critical and the Ack will go away.
But in the mean time, the host is temporarily unreachable, and the check gets a timeout and goes to Unknown. At that point we lose the Ack, and when the host is reachable again, the Critical shows up at the top level minus the Ack.
Is there a way to preserve the Ack through these Critical->Unknown->Critical state changes?