Auth expiry
Credentials that run out
Signal: an expiry horizon tracked per token and key, plus the first 401 or 403 on a call that worked an hour ago.
Action: the refresh handshake runs ahead of the deadline where the provider supports it. Writes queue in order during the handshake and go through afterwards. If the credential genuinely needs a human, the ask arrives before anything is lost.
Schema drift
Fields that quietly change
Signal: today's schema fingerprint no longer matches yesterday's — a rename, a re-type, a field that moved a level deeper.
Action: the agent maps the changed field back to what your systems expect using the fingerprint history, then replays anything that arrived mid-change. A genuinely new field is surfaced for a decision rather than guessed at.
Rate ceilings
Being told to slow down
Signal: 429s, shrinking quota headers, or latency climbing against the baseline for that hour of the week.
Action: the agent backs off and finds another path — the urgent lane fails over to a second endpoint where one exists, everything else waits its turn with ordering intact and drains as capacity returns.
Silent data gaps
The failure with no error
Signal: expected cadence versus actual. The endpoint answered, the payload never landed, and nothing anywhere logged a problem.
Action: missing deliveries are replayed from the buffer oldest first and confirmed downstream one by one, so the gap closes in the right order rather than all at once.
Upstream outages
Something else went down
Signal: repeated timeouts or 5xx across a whole endpoint rather than a single call, correlated across the flows that touch it.
Action: the queue is held in order instead of being retried into the ground, urgent work fails over where a second path exists, and the backlog drains the moment the endpoint answers again.
Poison records
One bad row, one bad batch
Signal: a payload that fails validation or repeatedly fails the same destination while its neighbours succeed.
Action: the record is quarantined with the reason attached and the batch continues. Nothing corrupt is written into a destination to be cleaned up by hand three weeks later.