Migrating to Node.js v22.17.0
Version v22.17.0 introduces 2 breaking changes. This guide details how to update your code.
Released: 6/25/2025
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
http.IncomingMessagehttp.ServerResponsechild_processhttp2.Http2Stream.priorityassert.partialDeepStrictEqualfs.FileHandle.readableWebStreamfs.Dirhttp2.server.stream.finishutil.styleTextfs.globfs.openAsBlobURL.createObjectURLv8.setHeapSnapshotNearHeapLimitAsyncLocalStoragecrypto.constants.OPENSSL_IS_BORINGSSLBreaking Changes
●Issue #1
Instantiating node:http classes like IncomingMessage or ServerResponse without the 'new' keyword is now discouraged and may throw errors in future versions. Use 'new IncomingMessage()' instead.
●Issue #2
Using an empty string for options.shell in node:child_process is now discouraged as it previously had undefined behavior. Use 'shell: true' or an explicit shell path.
Migration Steps
- 1Update node:http class instantiations to always use the 'new' keyword.
- 2Replace options.shell = "" in child_process calls with 'shell: true' or a specific shell path.
- 3Remove dependencies on HTTP/2 stream.priority as the API is deprecated.
- 4Update tests to use the now-stable assert.partialDeepStrictEqual() where partial object matching is required.
Release Summary
This release stabilizes several utility and file system APIs, introduces explicit resource management for directory handles, and deprecates legacy behaviors in the HTTP and child_process modules.
Need More Details?
View the full release notes and all changes for Node.js v22.17.0.
View Full Changelog