Skip to content

ci(edge): run Windows checks and releases on Node 24.21.0, past the libuv exit abort - #277

Merged
pawaca merged 1 commit into
mainfrom
ci/node-24.21-windows-libuv
Oct 7, 2026
Merged

pawaca merged 1 commit into
mainfrom
ci/node-24.21-windows-libuv

Conversation

@pawaca

@pawaca pawaca commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Fixes the intermittent Windows CI crash (exit code 3221226505 = 0xC0000409) by moving the pinned Node from 24.15.0 to 24.21.0.

Evidence

Across the last 80 Edge CI runs, edge / windows release checks aborted with 0xC0000409 eight times:

  • Five crashed while wrangler exited after a bundling error. Their logs print the cause:
    Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), file src\win\async.c, line 76.
  • Three crashed inside session.integration.mjs within 2–15 s of a mode's start, before any test output. That is where wrangler's unstable_dev starts and stops the released-state seeder. They exited with the same status; no assertion text reached the log.

This is the known Node bug nodejs/node#56645. A platform worker thread posts a delayed task after the scheduler's uv_async handle started closing at exit, so Windows libuv aborts. nodejs/node#61999 ("src: fix libuv assertion on windows") fixed it in 24.20.0 (CHANGELOG_V24.md). The same 0xC0000409 hits release publish jobs, which run the same checks on Windows; today it would fail a tag and force a new version number.

Why 24.21.0, not 24.20.0

release-edge.yml stayed on 24.15.0 because 24.16+ could abort Windows file watchers when runner temp uses an 8.3 short path, until nodejs/node#65118. That fix shipped in 24.21.0. 24.21.0 is the first release with both fixes, so .node-version, edge-ci.yml's WINDOWS_NODE_VERSION, and release-edge.yml's NODE_VERSION all move to it. The stale comment is replaced with one covering both.

Validation

This PR's own edge / windows release checks runs on 24.21.0. The crash is intermittent (about 1 in 10 runs here), so I will rerun that job a few times before merging and report the results.

🤖 Generated with Claude Code

…ibuv exit abort

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T14:20:08.739733Z c08d9f6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@pawaca

pawaca commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

Validation on Node v24.21.0 (confirmed in the job log): edge / windows release checks passed 4 of 4 runs of run 37635560292 (the first run plus 3 job reruns). For comparison, the crash hit 8 of the last 80 Windows runs on 24.15.0. The file-watcher concern behind the old 24.15.0 pin (nodejs/node#65118) did not show in these runs either.

@pawaca
pawaca merged commit 4a0508c into main Oct 7, 2026
20 checks passed
@pawaca
pawaca deleted the ci/node-24.21-windows-libuv branch October 7, 2026 14:40
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.

1 participant