Change8

Migrating to Node.js v25.0.0

Version v25.0.0 introduces 10 breaking changes. This guide details how to update your code.

Released: 10/15/2025

10
Breaking Changes
6
Migration Steps
15
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

SlowBufferErrorEventUint8Arrayassert.failassert.CallTrackerfs.F_OKfs.R_OKfs.W_OKfs.X_OKfs.rmdirhttp.writeHeaderECDH.setPublicKeyprocess.multipleResolvesFileHandleasync_hooks.asyncResource

Breaking Changes

Issue #1

The 'SlowBuffer' API has been moved to end-of-life (EOL) and removed.

Issue #2

The 'fs.F_OK', 'fs.R_OK', 'fs.W_OK', and 'fs.X_OK' constants have been removed. Use 'fs.constants' instead.

Issue #3

The 'rmdir' recursive option has been moved to EOL; use 'fs.rm' for recursive directory removal.

Issue #4

The 'CallTracker' in the assert module has been moved to EOL.

Issue #5

The 'multipleResolves' process event has been moved to EOL.

Issue #6

Corepack is no longer distributed with Node.js.

Issue #7

FileHandle objects no longer automatically close on garbage collection (GC).

Issue #8

Deep equal checks in 'assert' and 'util' now fail promise comparisons and treat invalid dates as equal.

Issue #9

The 'asyncResource' property on bound functions has been moved to EOL.

Issue #10

Legacy URL bad port deprecation and IP-address servername in TLS have been moved to EOL.

Migration Steps

  1. 1
    Replace 'SlowBuffer' usage with 'Buffer.allocUnsafeSlow()'.
  2. 2
    Update file access checks to use 'fs.constants.F_OK' etc., instead of 'fs.F_OK'.
  3. 3
    Replace 'fs.rmdir(path, { recursive: true })' with 'fs.rm(path, { recursive: true })'.
  4. 4
    Manually install Corepack if your workflow depends on it, as it is no longer bundled.
  5. 5
    Ensure 'FileHandle' instances are explicitly closed using 'fileHandle.close()' to avoid resource leaks.
  6. 6
    Update crypto calls to specify explicit output lengths for shake128/256.

Release Summary

Node.js 25 updates the V8 engine to 14.1, enables Web Storage by default, and introduces the --allow-net permission flag. This release also removes several long-deprecated APIs including SlowBuffer and legacy fs constants.

Need More Details?

View the full release notes and all changes for Node.js v25.0.0.

View Full Changelog