fix Play Store upload: replace resumable upload with single-request upload#2147
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughRemoves explicit chunked/resumable upload handling (constant + helper) and updates Internal App Sharing and Play Store upload call sites to call execute(...) directly; startup logging now prints AAB size in MiB; CI workflow step verifying httplib2 and the requirements header comment were simplified. ChangesAndroid App Bundle Upload Simplification
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR replaces the chunked resumable-upload approach for Play Store AAB uploads with a simpler single-request
Confidence Score: 4/5Safe to merge; the simplification is intentional and the core retry/timeout safety nets remain in place. The upload path now sends the entire AAB in a single HTTP request instead of in 8 MB chunks. On a flaky CI link the full 5-retry budget could be exhausted faster than before, but the 600-second socket timeout and the outer with_retry wrapper give reasonable coverage. The removed comment about the httplib2 pin is a minor maintenance concern. No auth, correctness, or data-integrity issues are introduced. upload_to_play_store.py warrants a real-world upload run to confirm the non-resumable path completes within the timeout budget for a production-sized AAB. Important Files Changed
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d3f402135
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
With the single-request upload, the socket timeout is the binding constraint; the size makes timeout failures interpretable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Summary
Android store deploys fail at the Play Store upload step with:
This is httplib2's
RedirectMissingLocation: the resumable-upload protocol signals "resume incomplete" with308responses that intentionally carry noLocationheader, and httplib2 treats them as broken redirects. #2145 tried to fix this by pinning httplib2 — but the 2026-06-02 deploy run had the pin (its "Verify httplib2 version" step printedhttplib2 0.31.2) and still failed with the same error. The pin doesn't avoid the failing path; the resumable flow itself does not work on these runners.This PR removes the resumable/chunked upload (added in #2140) in favor of a plain single-request upload with
execute(num_retries=5). A single-request upload never produces a308, so the failing code path is gone entirely. Also removes the now-pointless httplib2 diagnostic step from the workflow and trims the stale pin rationale from the requirements file (the pin stays, for reproducibility).Reviewed trade-offs of dropping resumable:
with_retry(3 attempts, backoff) plus the version-already-committed verification still cover the committed-but-response-lost case.HTTP_TIMEOUT_SECONDS.Note: deploys currently fail before reaching this step on a separate bug —
--silentforwarded intovite buildbybuild:deps(#2158). Both PRs need to land (and reach the release branch) for a deploy to go green end to end.Test plan
python3 -m py_compile app/scripts/upload_to_play_store.pypasses.🤖 Generated with Claude Code
Summary by CodeRabbit
Chores
Refactor