CCDV-F Domain 6: Resilience, Errors & Rate Limits
Handling HTTP error codes (400, 401, 429, 500, 529), implementing exponential backoff with full jitter, managing Rate Limits (RPM, TPM, TPD), and building fault-tolerant pipelines.
1. Standard HTTP Error Code Taxonomy
| Status Code | Error Type | Root Cause & Retry Strategy |
|---|---|---|
| 400 Bad Request | invalid_request_error |
Schema violation (e.g. missing max_tokens, non-alternating messages). Do not retry without payload fixes. |
| 401 Unauthorized | authentication_error |
Missing or invalid x-api-key. Do not retry until key is refreshed. |
| 429 Rate Limit | rate_limit_error |
Exceeded Requests Per Minute (RPM) or Tokens Per Minute (TPM). Retry using exponential backoff respecting retry-after header. |
| 529 Overloaded | overloaded_error |
Anthropic servers are experiencing temporary peak traffic. Retry with exponential backoff and jitter. |
| 500 Internal Error | api_error |
Unexpected Anthropic internal server error. Retry with exponential backoff. |
2. Exponential Backoff with Jitter Algorithm
When handling 429 or 529 errors, naive retries at fixed intervals cause "thundering herd" congestion. The official best practice is Exponential Backoff with Full Jitter:
Sleep = random(0, min(MaxSleep, BaseSleep * 2^attempt))
Official Anthropic SDKs implement automatic retry loops with jitter out-of-the-box for 429, 500, 529, and network drops.
3. Rate Limit Tiers: RPM, TPM, and TPD
- RPM (Requests Per Minute): Maximum discrete API calls allowed per 60-second window.
- TPM (Tokens Per Minute): Combined sum of input and output tokens allowed per 60-second window.
- TPD (Tokens Per Day): Total 24-hour token consumption ceiling.