429 Too Many Requests vs 503 Service Unavailable
429 is caller-specific rate limiting. 503 is broader service unavailability from overload or maintenance.
| Aspect | 429 Too Many Requests | 503 Service Unavailable |
|---|---|---|
| When it happens | Emitted when conditions specific to 429 too many requests occur. | Emitted when conditions specific to 503 service unavailable occur. |
| How to tell apart | Identify which layer emitted the code and inspect headers/logs for that layer. | Confirm whether problem is auth/policy, upstream quality, overload, or timeout. |
| Troubleshooting first step | Trace request ID through edge and application logs. | Check deploy/config changes and dependency health in same time window. |
| Practical note | Do not mask this response with generic handlers. | Return explicit headers like Retry-After or auth challenge when relevant. |
When each appears in production
Use CDN/proxy logs to find emission point, then app logs/traces to isolate root cause.
Troubleshooting workflow
Validate routing, policy, and timeout budgets in order. Fix the first failing layer before tuning client retries.
Related guides: 429 Too Many Requests · 503 Service Unavailable