You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[AI] fix(outbound): clear recoveryState on connect-phase errors so drain can retry (#100979)
When a send fails with a connect-phase network error (UND_ERR_CONNECT_TIMEOUT,
ECONNREFUSED, ENOTFOUND, EAI_AGAIN, ENETUNREACH), the request body never
reached the platform. However, failDelivery() does not clear recoveryState,
so the entry remains in send_attempt_started state. On gateway reconnect,
the drain refuses blind replay and permanently drops the message.
Add clearDeliveryRecoveryState() to the storage layer and a connect-phase
error detection + cleanup branch in deliver.ts, so these entries become
eligible for normal retry/replay.
Non-connect-phase errors (ECONNRESET, ETIMEDOUT) keep the existing guard.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Related to #100979
0 commit comments