api rate_limiting ai_generated true

429 Too Many Requests — Retry-After header ignored by client

ID: api/rate-limit-retry-after-ignored

Also available as: JSON · Markdown
92%Fix Rate
90%Confidence
4Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

Client ignores Retry-After header causing progressive backoff escalation or IP ban.

generic

Workarounds

  1. 93% success Parse Retry-After header and sleep for the specified duration
    const retryAfter = parseInt(res.headers['retry-after'], 10) || 1; await sleep(retryAfter * 1000);

    Sources: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After

  2. 90% success Implement exponential backoff with jitter
    delay = min(base * 2^attempt + random_jitter, max_delay)

    Sources: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

Dead Ends

Common approaches that don't work:

  1. Retry immediately in a tight loop 95% fail

    Hammering a 429 endpoint causes progressive penalty escalation

  2. Only add a fixed 1-second delay 70% fail

    Fixed delay ignores the Retry-After value