When agents hit your 429 without reset_at, things get bad fast
Without a machine-readable reset timestamp, exponential backoff with jitter across many agents clusters into retry storms. The fix: reset_at in JSON, Retry-After in headers, and contracts agents can depend on.
Opening excerpt (first ~120 words) tap to expand
// blog When agents hit your 429 without reset_at, things get bad fast 2026-04-28 · by Guilherme Secca Stable error contracts, reset_at, and Retry-After A 429 without a machine-readable reset timestamp doesn't just slow agents down. Under the right conditions it turns them into a coordinated attack on your own API. Think through what happens: 50 agents running generated code against the same SDK all hit a rate limit at roughly the same time. None of them gets a reset_at. So each one does the sensible thing and starts exponential backoff with jitter. Except "jitter" across agents running identical generated code tends to cluster. They back off, then they all retry at roughly the same time, then they all hit the limit again. The thundering herd is your own clients.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at truval.dev.