# 09 Errors Retries Standards: - Normalize Uber error responses - Define retryable vs non-retryable errors - Enforce idempotent writes where possible - Capture request/response logs for debugging Implemented behavior: - 4xx errors are treated as client/fatal (no retry by default). - Transient retries use exponential backoff + jitter for: - `408`, `429`, `502`, `503`, `504` - network timeout/reset/connectivity failures - Max attempts: `4` (initial + 3 retries). - Error response contract includes: - `code` - `transient` - `message` - `requestId`