Skip to content

fix(ci): pin Node to exact 24.16.0 to dodge node-fetch break#5

Merged
rqbazan merged 1 commit into
mainfrom
fix/pin-node-24-16
Jun 29, 2026
Merged

fix(ci): pin Node to exact 24.16.0 to dodge node-fetch break#5
rqbazan merged 1 commit into
mainfrom
fix/pin-node-24-16

Conversation

@rqbazan

@rqbazan rqbazan commented Jun 29, 2026

Copy link
Copy Markdown
Member

Root cause (verified in the runner)

Node's recent security release — present in 24.17.0 and 22.23.0 — surfaces a long-standing node-fetch@2 defect that throws a false-positive ERR_STREAM_PREMATURE_CLOSE on keep-alive socket closures (nodejs/node#63989). @changesets/get-github-info (used by changelog-github) still ships node-fetch@2, so its GitHub GraphQL call dies during changeset version → the release fails.

Pinning the major doesn't help: .node-version: 22 resolves to the latest 22.x = 22.23.0, which is broken — that's why #4 still failed.

Evidence — matrix probe run in the actual GitHub runner

Each leg fired the same node-fetch@2 GraphQL request 8×:

Node success
24.17.0 0/8 ❌ what CI resolves today
22.23.0 1/8 ❌ what .node-version: 22 resolved to
24.16.0 8/8
24.13.0 8/8
22.20.0 8/8

The pre-regression versions pass deterministically in the runner; the post-regression ones fail.

Fix

Pin to the exact 24.16.0 (newest patch before the regression) in .node-version and mise.toml.

Follow-up

Temporary workaround. Once changesets moves off node-fetch@2 (or if we switch to the basic @changesets/cli/changelog), the pin can return to a floating major.

🤖 Generated with Claude Code

Node's recent security release (in 24.17.0 and 22.23.0) surfaces a
node-fetch@2 false-positive ERR_STREAM_PREMATURE_CLOSE, which breaks
@changesets/get-github-info's GitHub API call during `changeset version`.

A floating major pin does not help: .node-version "22" resolves to 22.23.0,
which is broken — that's why #4 still failed. Pin an exact pre-regression
patch instead.

Verified in the actual runner with a matrix probe (8 GraphQL requests each):
24.17.0 -> 0/8, 22.23.0 -> 1/8 (broken); 24.16.0 -> 8/8, 24.13.0 -> 8/8,
22.20.0 -> 8/8 (good). Pin to 24.16.0, the newest pre-regression patch.

Temporary until changesets moves off node-fetch@2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 72f5fef

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vland-bot

vland-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Preview release

Latest commit: 72f5fef

Some packages have been released:

Package Version Install
@vlandoss/theme-toggle 0.0.1-git-72f5fef.0 @vlandoss/theme-toggle@0.0.1-git-72f5fef.0

Note

Use the PR number as tag to install any package. For instance:

pnpm add @vlandoss/theme-toggle@pr-5

@rqbazan rqbazan merged commit ae30f25 into main Jun 29, 2026
2 checks passed
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