HTTP 429 vs 503

Too Many Requests vs Service Unavailable

Quick Decision

Choose HTTP 429 when the request is invalid (client must fix). Choose HTTP 503 when the server fails (client may retry).

Decision Boundary

HTTP 429 (client error) and 503 (server error) represent fundamentally different failure modes. 429 indicates the request itself is invalid, malformed, or unauthorized—the client must change its request. 503 signals the server failed to process a valid request—the client may retry with backoff. The boundary is clear: if the request is invalid, return 429; if the server fails on a valid request, return 503.

Decision Logic

Use HTTP 429 when too many requests; choose HTTP 503 when service unavailable.

If: Request is malformed, unauthorized, or violates business rules
Then: Return HTTP 429
Client errors indicate the request itself is invalid and must be corrected before retrying.
If: Request is valid but server fails to process it (exception, timeout, upstream failure)
Then: Return HTTP 503
Server errors allow safe retries with backoff for idempotent requests.