Repository navigation
release signer: wait out Apple notary rate limits instead of failing the nightly - #33028
Conversation
… the nightly Nightly 41571567978 failed at signer-app: Apple answered the Computer Use helper submission with 429 RATE_LIMIT, "Exceeded daily limit for notarizations. Try again in 0:04:11." sign-app.sh, notarize-app.sh and notarize-dmg.sh now submit through notary_submit (signer-env.sh), which waits the time Apple names plus 15 s and submits again, within CMUX_NOTARY_RATE_LIMIT_SECONDS (600 s by default). A refused submission leaves nothing at Apple, so the retry duplicates nothing; any other failure still fails at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
web and size checks: green Shipped in:
|
|
Found 6 test failures on Blacksmith runners: Failures
|
|
Review (codex, router-review): SHIP at c026616 Reviewer: codex gpt-6-astra high, fast tier. SHIP at c026616 Reviewed all three call sites and retry/error handling. All 52 signer tests passed across runs after using Follow-ups: none |
A newer verdict blocks 0621804 (no independent SHIP at the head).
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Nightly run 41571567978 (the tip build Leo's PRs were waiting on) failed at
signer-app. Apple refused the Computer Use helper's notarization:The signer treated this like a rejection and failed the run, so nothing published. Apple only asked for four minutes.
Change
scripts/ci/release-signer/signer-env.shgetsnotary_submit, a wrapper aroundnotary-submit. On a 429RATE_LIMITit waits the time Apple names plus 15 s, then submits again. All waits share one budget,CMUX_NOTARY_RATE_LIMIT_SECONDS, 600 s by default, which fits inside the signer jobs' 40/75 min timeouts beside their notary waits.sign-app.sh(the helper submission),notarize-app.shandnotarize-dmg.shsubmit through it. Both notarizations stay, and so does the stapled app inside the DMG.tests/test_release_signer_scripts.py: the fake signer can now answer with Apple's 429, and a stand-insleeprecords each wait. The new tests cover:The three rate-limit tests fail without the change.
Waiting adds time only when Apple has already refused, a case that failed the whole nightly before.
Follow-up, not in this PR: we are near Apple's daily cap. Each nightly now notarizes the helper, app and DMG for two identities (since #32140). Skipping app-identical promotions (#32689) cuts the count; the Mac fallback scripts (
notarize-computer-use-helper.sh,notarize-nightly-dmg.sh) do not wait on a 429 yet.Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
The release signer now waits out Apple's notary rate limits instead of failing the nightly. Previously a 429
RATE_LIMITresponse aborted the run even when Apple only asked for minutes.notary_submitinsigner-env.sh, wrappingnotary-submit: on a 429 it waits the time Apple names plus 15 s and submits again, withinCMUX_NOTARY_RATE_LIMIT_SECONDS(600 s by default).Written for commit 0621804. Summary will update on new commits.