mirror of
https://github.com/openai/codex.git
synced 2026-10-31 19:28:49 +00:00
Honor server retry advice across Responses retries and fallback (#49441)
## Why Responses overload and exhausted-request errors could terminate despite server retry advice, and WebSocket-to-HTTP fallback could issue a request before the advised deadline. ## What changed - Allow `ServerOverloaded` and `RetryLimit` errors to retry when server advice is present, within the configured retry budgets. - Preserve `Retry-After` headers from rejected WebSocket upgrades and wait for the server deadline before falling back to HTTP. - Keep quota, usage-limit, and policy failures terminal even when they include retry advice. ## Testing Add coverage for HTTP overload and rate-limit recovery, WebSocket upgrade rejection and fallback timing, retry deadline preservation through error mapping, and retry limits for sampling and manual and automatic compaction. GitOrigin-RevId: 72d30a9f078652664754dfa971fd7dc7a78f20e8
This commit is contained in:
committed by
copyberry
parent
fc81a7154b
commit
6ba4bf9e64
@@ -403,18 +403,19 @@ impl CodexErr {
|
||||
| CodexErrorDetails::UnsupportedOperation(_)
|
||||
| CodexErrorDetails::Sandbox(_)
|
||||
| CodexErrorDetails::LandlockSandboxExecutableNotProvided
|
||||
| CodexErrorDetails::RetryLimit(_)
|
||||
| CodexErrorDetails::ContextWindowExceeded
|
||||
| CodexErrorDetails::ThreadNotFound(_)
|
||||
| CodexErrorDetails::AgentLimitReached { .. }
|
||||
| CodexErrorDetails::Spawn
|
||||
| CodexErrorDetails::SessionConfiguredNotFirstEvent
|
||||
| CodexErrorDetails::UsageLimitReached(_)
|
||||
| CodexErrorDetails::ServerOverloaded
|
||||
| CodexErrorDetails::FlexUnavailable
|
||||
| CodexErrorDetails::CyberPolicy { .. }
|
||||
| CodexErrorDetails::BioPolicy { .. }
|
||||
| CodexErrorDetails::MisalignmentPolicyViolation { .. } => None,
|
||||
CodexErrorDetails::ServerOverloaded | CodexErrorDetails::RetryLimit(_) => {
|
||||
self.server_retry_delay()
|
||||
}
|
||||
CodexErrorDetails::Stream(..)
|
||||
| CodexErrorDetails::ContentFilter
|
||||
| CodexErrorDetails::RateLimitExceeded(_)
|
||||
|
||||
Reference in New Issue
Block a user