feat: implement issue #820 — {"message": "No server is currently available to service your request. Sorry about that. Please try resubmitting your request and contact us if the problem persists."} Unknown - #821
Conversation
…lable to service your request. Sorry about that. Please try resubmitting your request and contact us if the problem persists."} Unknown
|
Warning Review limit reached
Next review available in: 27 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughChangessync-issues resilience
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant sync_issues
participant FrontierState
participant RunHistory
participant GitHubIssues
participant JobSummary
sync_issues->>FrontierState: evaluate agent state
FrontierState->>RunHistory: fetch run history
RunHistory-->>FrontierState: records or data-gap failure
FrontierState-->>sync_issues: state and datagap marker
sync_issues->>GitHubIssues: open or update blocker
sync_issues->>JobSummary: render fleet status
Possibly related issues
Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 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 |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Pull request overview
This PR addresses issue #820 by making the canary-rollout sync-issues path fail closed when GitHub Actions run-history data is partially/unavailable, preventing false “all clear” states and ensuring a blocker issue is still opened/updated with the data gap clearly annotated.
Changes:
- Record sustained
gh run listfailures in_run_jsonso higher-level logic can detect partial run-history fetch outages. - Add
_frontier_state_resilientand wirecmd_sync_issuesto use it, producing fail-closed BLOCKED states on data gaps and returning non-zero on total undeterminability. - Add Bats coverage for partial run-history outage behavior and the total-undeterminable hard-fail behavior.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
scripts/canary-rollout.sh |
Adds run-history outage signaling + resilient state computation, and updates sync-issues to fail closed on partial/total state gaps. |
tests/canary_rollout.bats |
Adds regression tests covering partial run-history fetch outages and total inability to determine state. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
|
Caution Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted. Error details |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/canary-rollout.sh`:
- Around line 1486-1501: Update _frontier_state_resilient so failure to create
the mktemp flag is treated as a detection failure: do not run _frontier_state
through the unarmed else path, set a nonzero return status and mark
fetch_failed, and preserve cleanup and existing handling when the flag is
created successfully.
In `@tests/canary_rollout.bats`:
- Around line 2634-2669: Refactor the shared stub setup in _sync_stub and
_sync_gap_stub to eliminate duplicated git/gh heredoc boilerplate. Parameterize
the differing run list failure behavior and ref=cccc/ref=bbbb responses, then
have _sync_gap_stub reuse the shared implementation while preserving its
existing gap-test behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 703dcea6-3497-4181-b8e4-80d58a895eef
⛔ Files ignored due to path filters (2)
node_modules/.package-lock.jsonis excluded by!**/node_modules/**package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (2)
scripts/canary-rollout.shtests/canary_rollout.bats
Dev-Lead — fix-reviews (applied)Changes committed and pushed. |
|
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: MEDIUM
Reviewed commit: 7a24725c3c454deedf4df2645908c149423676d4
Review mode: triage-approved (single reviewer)
Summary
Implements fail-closed sync-issues for canary-rollout (#820): a new _frontier_state_resilient wrapper detects sustained run-history fetch failures via a file flag armed around _run_json, reconstructs tag-only state (candidate/frontier/transition/reusable-differs) on a data gap, and fails closed to a tracked BLOCKED issue annotated with a PARTIAL DATA banner instead of silently skipping or auto-closing regression issues. A total inability to determine state ends the step non-zero. 5 new bats tests cover the create, update/no-auto-close, pass-through, total-inability, and non-zero-exit paths.
Linked issue analysis
Closes #820 (re-split 2/2 of #803). All three acceptance criteria are met: (1) a forced partial fetch still opens/updates the REGRESSION needs-human blocker with the gap annotated (bats: create + update cases assert PARTIAL DATA banner, needs-human label, no CLOSE); (2) no regression is silently un-tracked — the datagap path always upserts BLOCKED and total inability is a hard error rendered in the fleet dashboard as UNKNOWN/fail-closed; (3) existing bats stay green (Lint and bats check passed) and partial-data cases were added.
Findings
No blocking findings.
- All 4 review threads (2 Copilot, 2 CodeRabbit) are resolved, and each fix is verified present in the head diff: the _blocker_body header comment documents the 16th [<data_gap>] param; _frontier_state_resilient propagates non-data-gap _frontier_state errors instead of mis-annotating them as datagap=1; a failed mktemp now fails closed (fetch_failed=1) rather than running unarmed; _sync_gap_stub is a thin wrapper over a parameterized _sync_stub. CodeRabbit's CHANGES_REQUESTED review was subsequently dismissed after the fixes.
- Field-count consistency verified: the reconstructed datagap state line emits 19 fields matching the 19-variable read in cmd_sync_issues; the normal path appends a trailing datagap=0.
- Minor (non-blocking): package-lock.json and node_modules/.package-lock.json change only the cosmetic name field (pr-782 -> pr-821), a tooling artifact with no dependency changes.
- Secret scan: run_secret_scanning MCP tool not available in this environment; gitleaks CI check is green.
CI status
All validation checks green: ShellCheck, Lint, Lint and bats, CodeQL (Analyze/actions), SonarCloud (x2 + Code Analysis), Secret scan (gitleaks), npm audit, Agent Security Scan, agent-shield, pr-auto-review, CodeRabbit. Skipped: pnpm/cargo/pip audits, govulncheck (ecosystems not present). Cancelled: dev-lead dispatch/ci-relay — the authoring agent's own orchestration jobs, not validation checks.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.



Closes #820
Implemented by dev-lead agent. Please review.
Summary by CodeRabbit