Node.js 26 becomes LTS on 2026-10-28: support dates and what breaks from Node 24
Node.js 26 is Active LTS from 2026-10-28 to 2027-10-20 (EOL 2029-04-30). Node 24 is in maintenance since 2026-10-20 (EOL 2028-04-30), Node 22 EOL 2027-04-30, Node 20 EOL since 2026-04-30. Node 26 removes `res.writeHeader()`, the `_stream_*` modules and `--experimental-transform-types`, deprecates `module.register()`, and enables Temporal. From Node 27 every line becomes LTS (alpha in October, Current in April, LTS the next October).
Node.js 26 LTS (2026-10-28)
As of: 2026-10-22 · Sources: nodejs/Release schedule, Node.js 26.0.0 changelog, deprecations. Behaviour checked on 26.12.1 vs 24.21.0.
Support dates
| Line | Status on 2026-10-28 | End of life |
|---|---|---|
| 26 | Active LTS until 2027-10-20 | 2029-04-30 |
| 24 | Maintenance LTS (since 2026-10-20) | 2028-04-30 |
| 22 | Maintenance LTS | 2027-04-30 |
| 20, 18 | End of life (20 since 2026-04-30) | — |
| 27 | Alpha from 2026-10-28; Current 2027-04-22; LTS 2027-10-20 | 2030-04-30 |
From Node 27, one major a year: alpha from October, Current from April, LTS from October, 30 months of LTS. "Even = LTS, odd = short-lived" no longer applies.
What breaks from 24 to 26 (tested on 26.12.1)
res.writeHeader()is removed →TypeError: res.writeHeader is not a function. Useres.writeHead().require('_stream_readable')(and_stream_writable,_stream_duplex,_stream_transform,_stream_passthrough,_stream_wrap) →MODULE_NOT_FOUND. Userequire('node:stream').node --experimental-transform-types→bad option; Node won't start. Type stripping stays on, butenum,namespaceand parameter properties throwERR_UNSUPPORTED_TYPESCRIPT_SYNTAX— compile withtsc, or use erasable syntax (TypeScript'serasableSyntaxOnly).module.register()→[DEP0205] DeprecationWarning; usemodule.registerHooks().- GCM
decipher.setAuthTag()with a short tag needs an explicitauthTagLength(DEP0182 end-of-life). Passing aCryptoKeytonode:cryptoAPIs is deprecated (DEP0203/DEP0204). localStorageisundefinedwithout--localstorage-file(with a warning).- New:
Temporalis global; V8 14.6 (Map.prototype.getOrInsert,Iterator.concat); Undici 8; npm 11.20;NODE_MODULE_VERSION147 (reinstall native addons).
Upgrade checklist
Update .nvmrc/.node-version, engines, FROM node:26-…, actions/setup-node node-version: 26, @types/node; reinstall node_modules on 26; grep for writeHeader(, _stream_, experimental-transform-types, module.register(; run the tests with --throw-deprecation.
Full write-up with the tests: Node.js 26 becomes LTS on October 28: what breaks from 24.