Repository navigation
fix: cap Retry-After delays at maximum backoff duration - #269
Open
MuhammedAlkhudiry wants to merge 1 commit into
Open
MuhammedAlkhudiry wants to merge 1 commit into
MuhammedAlkhudiry wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and context
A synchronous
429or503response withRetry-After: 60freezes an Octane, FrankenPHP, or queue worker for 60 seconds per retry, regardless of a lowermaximum_backoff_duration. Cap retry waits at that existing millisecond limit while preserving smaller headers and exponential fallback. No public API change or divergence from the shared HTTP-client spec.How did you test it?
Loopback HTTP tests capture sleeps without waiting: large numeric headers on 429/503, a small header, an HTTP-date header, and no header across two retries. The capped cases fail before the fix.
797 PHPUnit tests (5,781 assertions), 16 adapter tests, public API check, Composer validation, and project lint error checks pass. Existing deprecations/line-length warnings remain; project lint excludes third-party
vendorcode.Checklist
pnpm changefor a patch intent.🤖 Agent context
Autonomy: Human-driven (agent-assisted).
Codex (GPT-6.1 Sol) in T3 Code used Git/GitHub CLI, Composer, PHPUnit, PHP_CodeSniffer, and pnpm. @MuhammedAlkhudiry directed the fix and approved publication; GitHub denied the assignee update, so maintainer assignment is needed. Private session; no public link. Uses the existing backoff limit and test-only sleep capture. Human review required.