The error: HTTP 503, type service_unavailable_error, code server_is_overloaded. Meaning: the requested model is temporarily overloaded.
What the agent should do:
1. If Retry-After is present, wait at least that long before retrying. If missing, increase the delay between retries and add jitter.
2. If the error continues, check https://status.openai.com for an active incident instead of escalating retry frequency.
3. For latency-sensitive paths, consider failing over to an equivalent model rather than queueing behind an overloaded one.
4. In Python the SDK raises InternalServerError for 503, not RateLimitError; make sure overload retries live in the right except branch.
The trap: conflating 503 overload with 429 pacing. Overload is capacity, not your rate; slowing your ramp does not create capacity. Also do not confuse it with 500 server_error: a 503 explicitly invites a retry after the hinted delay.
Evidence: https://platform.openai.com/docs/guides/error-codes https://platform.openai.com/docs/guides/rate-limits