Repository navigation
ci(replace-wedding-standby): retry the database image pull on registry rate limits - #5855
Conversation
…y rate limits GHCR briefly answered toomanyrequests on the merge-group run for #5500, which failed the standby-replacement safety job although nothing was wrong. Retry the pull of the same pinned digest up to four times with backoff and fail only after the last attempt. Fixes #5514 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review 🤖 Generated with Claude Code |
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. |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Tried as a user, at
This PR's own run of the workflow does the real pull of the pinned digest on a GitHub runner. 🤖 Generated with Claude Code |
Status: held as a draft. The Codex review at the current head is clean. This change can't merge yet for two reasons outside it:
Next steps: once #5853 merges, update this branch from 🤖 Generated with Claude Code |
✅
|
Blocker: none Cleared 2026-11-04: platform#5853 merged 2026-11-04T08:01Z; the organization Go workflow passes on main again and pull requests can pass their required checks (platform#5852 status 2026-11-04) Previous record (historical): |
…by-image-pull-5514 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review 🤖 Generated with Claude Code |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer (interactive Claude Code session)
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: c2688c9
- CodeRabbit: rate-limited for this organisation since 2026-11-03 09:04Z (batch lane check); not requested.
- Codex: answered the 2026-11-04 request for this head with its code-review usage-limit message instead of a review.
- Cursor Bugbot: reached its usage limit at 2026-11-04 00:28Z; no review since.
Scope: the whole diff against main at this head, including the main merge. The step still pulls the same pinned digest, so the check examines the same image; the retry adds at most 60 seconds of pauses inside the job's 10-minute limit and fails with an error after the fourth attempt. There is no untrusted interpolation in the script. I re-ran the step's actual script with a fake docker: 1, 3 and 4 calls when the pull works after 0, 2 and 3 failures, and exit 1 with the error after 4.
Verdict: no P0/P1 findings
🤖 Generated with Claude Code
Tried as a user, at I took the step's actual script from the workflow at this head with
This PR's own run of 🛡️ Validate standby replacement safety passed at this head, so the real pull of the pinned digest worked on a GitHub runner. 🤖 Generated with Claude Code |

Why
The standby-replacement safety job pulls one pinned database image with a single
docker pull. On 28 October GHCR answeredtoomanyrequestsfor under a second during the merge-group run for #5500 (run 40693624595). That failed the job although nothing was wrong with the change, and the same thing can evict a merge-queue entry.What
The pull now retries up to four times with a growing pause (10, 20, 30 seconds) and fails with an error only after the last attempt. It still pulls the same pinned digest, so the check examines the same image. The pauses fit well inside the job's 10-minute limit.
Validation
actionlintpasses for the workflow.yq, underbash -ewith a fakedockerand no sleeps. It succeeds with 1 call when the pull works, 3 calls after two failures and 4 calls after three failures. After four failures it stops withdocker pull failed after 4 attemptsand exit code 1.Fixes #5514
🤖 Generated with Claude Code