Skip to content

ci: fix monthly-refresh re-trigger self-stall on 6h timeout#6

Merged
gabrielspadon merged 1 commit into
mainfrom
fix/refresh-retrigger-self-skip
Jul 3, 2026
Merged

ci: fix monthly-refresh re-trigger self-stall on 6h timeout#6
gabrielspadon merged 1 commit into
mainfrom
fix/refresh-retrigger-self-skip

Conversation

@gabrielspadon

Copy link
Copy Markdown
Collaborator

Problem

Cold-cache validation of the Monthly Pipeline Refresh (run #68) revealed the workflow cannot auto-continue after the 6h job timeout, so it never reaches convergence unattended.

Evidence from #68 (28631390920):

  • Pipeline code is healthy cold: run 1 (cold) 8479 API calls / 5212 cached, run 2 6816 API calls / 5322 cached — count trending down (converging), zero pipeline errors.
  • Only ~3 iterations fit in the 6h timeout-minutes; convergence needs more. On timeout, refresh is cancelled and verify (if: always()) should re-trigger a successor — but its log shows ##[notice]Another run is already in progress — skipping re-trigger.

Root cause

The guard counts in-progress runs but includes the current run. While the verify job runs, its own run is still in_progress, so a timed-out run always sees count >= 1 and self-skips the re-trigger. (A manual cancel flips the run to cancelled before verify checks, which is why #67 -> #68 re-triggered fine; a timeout does not.) This stalls the monthly chain — also explains the 07-01 scheduled runs that died with no successor.

Fix

Exclude ${{ github.run_id }} from the in-progress count, so the guard only fires for a genuinely different concurrent run. Cascade-prevention intent preserved.

One-line change to the verify job's re-trigger guard.

Copilot AI review requested due to automatic review settings July 3, 2026 08:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a self-stalling condition in the Monthly Pipeline Refresh workflow where the verify job incorrectly counts the current workflow run as “another run in progress,” causing timed-out runs to skip the intended re-trigger and preventing the refresh chain from converging unattended.

Changes:

  • Adjust the re-trigger guard to exclude the current github.run_id from the in-progress run count.
  • Add clarifying comments explaining why excluding the current run is necessary (timeout vs manual cancel behavior).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gabrielspadon gabrielspadon merged commit 0863c3d into main Jul 3, 2026
9 checks passed
@gabrielspadon gabrielspadon deleted the fix/refresh-retrigger-self-skip branch July 3, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants