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 test job's timeout-minutes: 12 is no longer enough headroom for windows-latest, so PR and dev runs are being cancelled mid-Test and surfaced to authors as a failing check. This is a CI budget problem, not a defect in the PRs that trip it.
Evidence from live runs:
Run
Branch
windows-latest
Wall time
30459554635
dev
success
11 min
30493348190
dev
cancelled
—
30497549930
dev
cancelled
—
30498312557
dev
cancelled
—
30498333662
dev
cancelled
—
30498427875
dev
cancelled
—
The last green Windows run took 11 minutes against a 12-minute ceiling — roughly one minute of margin. Every dev run after it was cancelled.
Job-level confirmation on PR #653 (879efb243, job 90733427766):
The job dies at 12m05s with Test cancelled and every later step skipped, which is the signature of the job timeout rather than a test assertion failure.
Why this is costing review time
gh pr checks renders a cancelled job as fail, so a PR whose code is fine looks broken. Two examples from today:
feat(providers): add Baseten Model APIs preset #653 — same pattern. The first failure was a genuine failure, but the rerun came back cancelled at 12m05s. Its focused suites pass locally (38 pass) with bun x tsc --noEmit clean, so the preset itself is not implicated.
Reviewers currently have to open gh api .../check-runs and read conclusion on every red Windows job to tell a real failure from a timeout. That is easy to skip, and skipping it either blocks a good PR or hides a real one.
Suggested direction
The immediate unblock is more headroom — the existing code comment already records that 8 minutes was raised to 12 for the same reason, so the ceiling has been chasing suite growth rather than leading it. Worth pairing that with something that stops the ratchet:
Raise timeout-minutes for the test job with real margin over the current 11-minute Windows baseline.
Look at why Windows is roughly 2.5x slower than Linux (4 min) on the same suite. If a small number of tests dominate, sharding or test.serial on the resource-heavy ones may be cheaper than repeatedly raising the ceiling.
Related but separate: the earlier fix(catalog): stop respawning the codex --version probe on every catalog read #610 investigation captured error: EEXIST: file already exists, epoll_ctl plus Cannot call afterEach() after the test run has completed from the Bun runner on Linux CI. I could not find a matching upstream Bun issue, so I am not claiming a known regression — noting it because a runner that crashes or hangs would also present as a timeout.
Checks
I searched existing issues and documentation.
I removed secrets, tokens, account details, and personal data.
Area
GitHub Actions CI (
.github/workflows/ci.yml).Summary
The
testjob'stimeout-minutes: 12is no longer enough headroom forwindows-latest, so PR anddevruns are being cancelled mid-Testand surfaced to authors as a failing check. This is a CI budget problem, not a defect in the PRs that trip it.Evidence from live runs:
devdevdevdevdevdevThe last green Windows run took 11 minutes against a 12-minute ceiling — roughly one minute of margin. Every
devrun after it was cancelled.Job-level confirmation on PR #653 (
879efb243, job90733427766):The job dies at 12m05s with
Testcancelled and every later step skipped, which is the signature of the job timeout rather than a test assertion failure.Why this is costing review time
gh pr checksrenders a cancelled job asfail, so a PR whose code is fine looks broken. Two examples from today:windows-latest fail. Theconclusionwascancelled; a rerun passed and it merged cleanly (d24c5233f).failure, but the rerun came backcancelledat 12m05s. Its focused suites pass locally (38 pass) withbun x tsc --noEmitclean, so the preset itself is not implicated.Reviewers currently have to open
gh api .../check-runsand readconclusionon every red Windows job to tell a real failure from a timeout. That is easy to skip, and skipping it either blocks a good PR or hides a real one.Suggested direction
The immediate unblock is more headroom — the existing code comment already records that 8 minutes was raised to 12 for the same reason, so the ceiling has been chasing suite growth rather than leading it. Worth pairing that with something that stops the ratchet:
timeout-minutesfor thetestjob with real margin over the current 11-minute Windows baseline.test.serialon the resource-heavy ones may be cheaper than repeatedly raising the ceiling.error: EEXIST: file already exists, epoll_ctlplusCannot call afterEach() after the test run has completedfrom the Bun runner on Linux CI. I could not find a matching upstream Bun issue, so I am not claiming a known regression — noting it because a runner that crashes or hangs would also present as a timeout.Checks