You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The single failing run (31119528520) failed in "Set up job" with Failed to resolve action download info. Error: Service Unavailable β a transient GitHub action-resolution outage (503), not a config/code defect in the thin caller stub (which AGENTS.md forbids editing anyway).
The repo-specific self-heal handler auto-rebase-retry.yml (AGENTS.md exception; exists precisely to recover "transient API error, rate-limit, infra hiccup") did fire (31119777561) but hung ~15 min and was cancelled β because its own "Set up job" must resolve actions/checkout@<sha> during the very same action-resolution outage. So the mitigation shares the failure it's meant to heal, and the auto-rebase run stayed failed β DEGRADED metric.
Scope
Harden auto-rebase-retry.yml so the self-heal handler no longer depends on resolving any marketplace action during "Set up job": drop actions/checkout, fetch the retry script via the pre-installed gh CLI (REST contents API, a different service than action resolution), and run it. No change to the tested scripts/auto-rebase-retry.sh logic, and no change to the frozen auto-rebase.yml caller stub.
Implementation Checklist
.github/workflows/auto-rebase-retry.yml β remove actions/checkout step; add contents: read permission; fetch scripts/auto-rebase-retry.sh via gh api ... raw and execute it
tests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.py β new regression guard
.github/workflows/test-dev-lead.yml β add a job to run the new test
The single failing run (31119528520) failed in "Set up job" with Failed to resolve action download info. Error: Service Unavailable β a transient
GitHub action-resolution outage (503), not a defect in the (frozen) auto-rebase.yml
caller stub. The repo-specific self-heal handler auto-rebase-retry.ymldid fire
(31119777561) but hung ~15 min and was cancelled, because its own "Set up job"
had to resolve actions/checkout during the same outage. So the mitigation shared the
failure it exists to heal, the auto-rebase run stayed failed, and 1/3 runs β 33.3% DEGRADED.
Fix
Removed the retry handler's dependency on marketplace-action resolution so it can run
during the exact outage class it heals: dropped actions/checkout, added contents: read,
and self-fetch scripts/auto-rebase-retry.sh via the pre-installed gh CLI (REST contents
API β a different service than action resolution) before executing it. A job with zero uses: steps skips "Prepare all required actions" entirely. The tested retry logic in scripts/auto-rebase-retry.sh is unchanged; the frozen auto-rebase.yml stub is untouched.
Plan Execution
Diagnosed the failing run + the cancelled self-heal retry
Added failing regression test (red)
Hardened auto-rebase-retry.yml (green)
Wired the new test into test-dev-lead.yml
Full suite + dev-lead-lint.sh pass
Test Results
$ python3 tests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.py
PASS: .github/workflows/auto-rebase-retry.yml retry job resolves no actions and self-fetches scripts/auto-rebase-retry.sh
$ python3 tests/dev-lead/integration/test_auto_rebase_stub.py
PASS: auto-rebase.yml correctly references ...auto-rebase-reusable.yml@auto-rebase/v2-next
$ bats tests/dev-lead/unit/test_auto_rebase_retry.bats
1..11 (all ok)
$ bats tests/dev-lead/unit/ β 764 ok, 0 not ok
$ bash .dev-lead/scripts/dev-lead-lint.sh
[lint] shellcheck on 102 file(s)... / validating 4 agent profile(s)... / all checks passed
Files Changed
.github/workflows/auto-rebase-retry.yml: drop actions/checkout; add contents: read; self-fetch retry script via gh api ... raw and run it (immune to action-resolution outages).
tests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.py: new regression guard β retry job must resolve no actions, must still invoke the retry script, and must declare actions: write + contents: read.
.github/workflows/test-dev-lead.yml: new auto-rebase-retry-resilience job running the guard.
Notes
The original failure was pure transient infra; there is nothing to "fix" in the caller stub itself (and AGENTS.md forbids editing it). The durable fix is making the documented self-heal path actually recover this class β so a future 503 during "Set up job" gets re-run to success and the metric no longer degrades.
Edge case: if the REST contents API is also unavailable, the step fails fast under set -euo pipefail (never executes a partial script) β the pre-existing "a handler failure is just noise" posture, no worse than before.
Activity
don-petry commentedon Aug 7, 2026
Dev-Lead Implementation Plan
Issue: #1473 β [Fleet Monitor] petry-projects/.github-private β .github/workflows/auto-rebase.yml
Root cause
The single failing run (
31119528520) failed in "Set up job" withFailed to resolve action download info. Error: Service Unavailableβ a transient GitHub action-resolution outage (503), not a config/code defect in the thin caller stub (which AGENTS.md forbids editing anyway).The repo-specific self-heal handler
auto-rebase-retry.yml(AGENTS.md exception; exists precisely to recover "transient API error, rate-limit, infra hiccup") did fire (31119777561) but hung ~15 min and was cancelled β because its own "Set up job" must resolveactions/checkout@<sha>during the very same action-resolution outage. So the mitigation shares the failure it's meant to heal, and the auto-rebase run stayed failed β DEGRADED metric.Scope
Harden
auto-rebase-retry.ymlso the self-heal handler no longer depends on resolving any marketplace action during "Set up job": dropactions/checkout, fetch the retry script via the pre-installedghCLI (REST contents API, a different service than action resolution), and run it. No change to the testedscripts/auto-rebase-retry.shlogic, and no change to the frozenauto-rebase.ymlcaller stub.Implementation Checklist
.github/workflows/auto-rebase-retry.ymlβ removeactions/checkoutstep; addcontents: readpermission; fetchscripts/auto-rebase-retry.shviagh api ... rawand execute ittests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.pyβ new regression guard.github/workflows/test-dev-lead.ymlβ add a job to run the new testTests to Write
retryjob declares no step with auses:key (so "Set up job" resolves zero actions β immune to the [Fleet Monitor] petry-projects/.github-private β .github/workflows/auto-rebase.ymlΒ #1473 outage class)scripts/auto-rebase-retry.shactions: writeand addscontents: readTest Command
bats tests/dev-lead/unit/ && python3 tests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.py(plusbash .dev-lead/scripts/dev-lead-lint.sh)don-petry commentedon Aug 7, 2026
Dev-Lead: Implementation Complete
Root cause (why auto-rebase.yml went DEGRADED)
The single failing run (
31119528520) failed in "Set up job" withFailed to resolve action download info. Error: Service Unavailableβ a transientGitHub action-resolution outage (503), not a defect in the (frozen)
auto-rebase.ymlcaller stub. The repo-specific self-heal handler
auto-rebase-retry.ymldid fire(
31119777561) but hung ~15 min and was cancelled, because its own "Set up job"had to resolve
actions/checkoutduring the same outage. So the mitigation shared thefailure it exists to heal, the auto-rebase run stayed failed, and 1/3 runs β 33.3% DEGRADED.
Fix
Removed the retry handler's dependency on marketplace-action resolution so it can run
during the exact outage class it heals: dropped
actions/checkout, addedcontents: read,and self-fetch
scripts/auto-rebase-retry.shvia the pre-installedghCLI (REST contentsAPI β a different service than action resolution) before executing it. A job with zero
uses:steps skips "Prepare all required actions" entirely. The tested retry logic inscripts/auto-rebase-retry.shis unchanged; the frozenauto-rebase.ymlstub is untouched.Plan Execution
auto-rebase-retry.yml(green)test-dev-lead.ymldev-lead-lint.shpassTest Results
Files Changed
.github/workflows/auto-rebase-retry.yml: dropactions/checkout; addcontents: read; self-fetch retry script viagh api ... rawand run it (immune to action-resolution outages).tests/dev-lead/integration/test_auto_rebase_retry_no_action_resolution.py: new regression guard β retry job must resolve no actions, must still invoke the retry script, and must declareactions: write+contents: read..github/workflows/test-dev-lead.yml: newauto-rebase-retry-resiliencejob running the guard.Notes
set -euo pipefail(never executes a partial script) β the pre-existing "a handler failure is just noise" posture, no worse than before.feat: implement issue #1473 β [Fleet Monitor] petry-projects/.github-β¦
feat: implement issue #1473 β [Fleet Monitor] petry-projects/.github-β¦
feat: implement issue #1473 β [Fleet Monitor] petry-projects/.github-β¦