Skip to content

fix: restore Node 18 support after security dependency updates - #1495

Merged
dannyhw merged 1 commit into
mainfrom
fix/tester-app-rsdoctor-node18
Oct 10, 2026
Merged

dannyhw merged 1 commit into
mainfrom
fix/tester-app-rsdoctor-node18

Conversation

@dannyhw

@dannyhw dannyhw commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

#1486 broke the Node 18 job in Test Main Matrix on main. Two of its upgrades are responsible:

  • fastify 5.12 (affects users). Since fastify 5.12.0, the default forceCloseConnections: 'idle' only closes idle keep-alive sockets when a serverFactory is used. Otherwise fastify relies on server.close() to close them, and Node only does that from v19. On Node 18 the dev server's stop() hangs until the keep-alive timeout (72s). fastify 5.11.0 shuts down fine on Node 18 and 5.12.0 hangs. @callstack/repack-dev-server declares node >=18, so this affects real users too. The dev server now sets forceCloseConnections: true, which matches how 5.11 shut down (it called closeAllConnections()). Going back to an older fastify isn't possible, because the advisories need 5.12.5.
  • @rsdoctor/rspack-plugin 1.6.4 (tester app only). It depends on rslog@2.3.0, which throws on import under Node < 20. The tester app's rspack config imported it at the top of the file, so every config load failed on Node 18. The config now imports it only when RSDOCTOR is set.

Test plan

  • packages/dev-server tests pass on Node 18 and 24
  • apps/tester-app tests (bundle, start, lazy-compilation) pass on Node 18 and 24; before this change they failed on Node 18
  • biome check on changed files

fastify 5.12 stopped closing idle keep-alive sockets on close() unless a
serverFactory is used, relying on Node 19+ server.close() behaviour. On
Node 18 the dev server's stop() hung until the keep-alive timeout. Force
closing connections restores the pre-5.12 behaviour.

@rsdoctor/rspack-plugin 1.6.4 pulls in rslog 2.3.0, which throws on
import under Node < 20. The tester app now only imports it when
RSDOCTOR is set.
@vercel

vercel Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
repack-website Ready Ready Preview Oct 10, 2026 11:36am UTC

Request Review

@changeset-bot

changeset-bot Bot commented Oct 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 42e7abe

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 6 packages
Name Type
@callstack/repack-dev-server Patch
@callstack/repack Patch
@callstack/repack-plugin-expo-modules Patch
@callstack/repack-plugin-nativewind Patch
@callstack/repack-plugin-reanimated Patch
@callstack/repack-init Patch

Not sure what this means? Click here to learn what changesets are.

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

@dannyhw
dannyhw merged commit 44431b3 into main Oct 10, 2026
10 checks passed
@dannyhw
dannyhw deleted the fix/tester-app-rsdoctor-node18 branch October 10, 2026 11:44

This branch was successfully deployed

1 active deployment
Preview — 42e7abed Deployed Oct 10, 2026 by vercel[bot]
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