fix(sandboxes): retry upload response read errors - #903
Open
xeophon wants to merge 1 commit into
Open
Conversation
xeophon
requested review from
DamianB-BitFlipper,
JannikSt,
JohannesHa,
burnpiro,
kcoopermiller,
kennethnym and
willccbb
as code owners
September 6, 2026 15:09
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
File uploads now recover from transient response-read failures instead of immediately aborting sandbox setup. Both synchronous and asynchronous file and bytes uploads retry
httpx.ReadErrorusing the existing four-attempt upload budget and exponential backoff.Retries resend the same bytes to the same destination and share the budget with existing transient HTTP retries. The generic POST retry policy remains unchanged. If a bytes upload ultimately fails, its error includes the exception type and preserves the original cause.
Note
Low Risk
Idempotent upload retries only; behavior change is limited to recovering transient network/read failures without altering auth, 409, or generic POST retry policies.
Overview
Sandbox uploads now treat transient
httpx.ReadError(failures while reading the gateway response) like existing 408/5xx retries, instead of failing immediately.Sync and async
upload_fileandupload_bytesrouteReadErrorthrough_should_retry_upload_error, which shares the sameMAX_409_RETRIESattempt counter and exponential backoff as other transient upload errors.upload_bytesalso surfaces failures with the exception type and chains the original cause when retries are exhausted.New parametrized tests cover sync/async clients, file vs bytes uploads, and exhaustion after the retry budget.
Reviewed by Cursor Bugbot for commit bf14b90. Bugbot is set up for automated code reviews on this repo. Configure here.