-
Notifications
You must be signed in to change notification settings - Fork 255
Description
CI Failure Investigation - Run #37824
Summary
The fuzz job in run 22395803036 was cancelled not because a test failed but because a newer CI run (#37826) started while the 25 fuzz targets were still executing. The concurrency guard ci-$\{\{ github.ref }}-fuzz with cancel-in-progress: true intentionally aborts the older job so the latest push on main can take over.
Failure Details
- Run: 22395803036
- Commit: 57a2da4 (Update Claude Code 2.1.52→2.1.56 and Copilot CLI 0.0.415→0.0.417 (Update Claude Code 2.1.52→2.1.56 and Copilot CLI 0.0.415→0.0.417 #18313))
- Trigger: push
- Job:
fuzz→Run fuzz tests(step concluded ascancelled) - Error:
##[error]The operation was canceled.(2026-02-25T12:01:11Z)
Root Cause Analysis
Run 22395803036 (CI #37824) was still executing the fuzz suite when a subsequent push to main kicked off run 22395928374 (CI #37826, "deps: update golang.org/x/tools from v0.41.0 to v0.42.0 (#18319)"). Because the job is in the ci-$\{\{ github.ref }}-fuzz concurrency group with cancel-in-progress: true, GitHub immediately cancelled the earlier Run fuzz tests step and marked the job as cancelled once the newer run began.
Failed Jobs and Errors
- fuzz –
Run fuzz testsstep aborted due to the concurrency guard, which leaves the log at##[error]The operation was canceled.even though each fuzz target was running as expected.
Investigation Findings
- The job log shows the suite running through all fuzz targets, and the last output before the cancellation was
##[error]The operation was canceled.at 2026-02-25T12:01:11Z. - The newer run 22395928374 (#37826) is still in progress and occupies the same concurrency group, so the old run had to stop.
- Run 22395750014 (#37823) exhibits the same cancellation behavior whenever a later main run preempts it, confirming this is an expected pattern.
- The fuzz suite takes ~4 minutes because it executes all of the parser/workflow fuzz targets with
-fuzztime=10s, so push events that land during that window will always cancel the prior run.
Recommended Actions
- Rerun the CI workflow (or just the
fuzzjob) now that run 22395928374 has exclusive access to the concurrency group. No code change is required—the cancellation was deliberate.
Prevention Strategies
Document for future investigations that fuzz jobs on main are protected by ci-$\{\{ github.ref }}-fuzz with cancel-in-progress, so any cancellation usually signals that a newer run started immediately afterwards.
AI Team Self-Improvement
Before diagnosing fuzz test failures, check the ci-refs/heads/main-fuzz concurrency group and mention whether a newer run (ID, number, and starting commit) overtook the previous one; that will save time hunting for actual bugs.
Historical Context
- Run 22395750014 (CI #37823) was also cancelled by a later main run, so this pattern occurs regularly when a push lands while the 4-minute fuzz suite is running.
🩺 Diagnosis provided by CI Failure Doctor
To install this workflow, run
gh aw add githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d. View source at https://github.com/githubnext/agentics/tree/ea350161ad5dcc9624cf510f134c6a9e39a6f94d/workflows/ci-doctor.md.
- expires on Feb 26, 2026, 12:08 PM UTC