Skip to content

Honor server retry advice across Responses retries and fallback - #49441

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/72d30a9f078652664754dfa971fd7dc7a78f20e8
Sep 30, 2026
Merged

copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/72d30a9f078652664754dfa971fd7dc7a78f20e8

Conversation

@copyberry

@copyberry copyberry Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Honor server retry advice across Responses retries and fallback

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.

## 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
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/72d30a9f078652664754dfa971fd7dc7a78f20e8 branch from 76012c8 to 6ba4bf9 Compare September 30, 2026 02:12
@copyberry
copyberry Bot merged commit 6ba4bf9 into main Sep 30, 2026
1 check passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/72d30a9f078652664754dfa971fd7dc7a78f20e8 branch September 30, 2026 02:12
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 30, 2026

This branch was successfully deployed

1 active deployment
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants