Latest in branch 17.x
17.9.1
Released 01 Jun 2022
(3 years ago)
SoftwareNode.js
Version17.x
Status
End of life
Initial release17.0.0
19 Oct 2021
(4 years ago)
Latest release17.9.1
01 Jun 2022
(3 years ago)
End of bug fixes01 Jun 2022
(Ended 3 years, 11 months ago)
End of security fixes01 Jun 2022
(Ended 3 years, 11 months ago)
Release noteshttps://github.com/nodejs/node/releases/tag/v17.9.1
Source codehttps://github.com/nodejs/node/tree/v17.9.1
Documentationhttps://nodejs.org/dist/latest-v17.x/docs/api/
Downloadhttps://nodejs.org/download/release/latest-v17.x/
Node.js 17.x ReleasesView full list

What Is New in Node.js 17?

CategoryChange
New FeaturesOpenSSL 3.0 (first Node.js version to ship it)
New Featuresreadline/promises -- promise-based readline API
ImprovementsV8 9.5 -- Error.cause, new Intl APIs
ImprovementsDNS results returned in order of query again (reverts v17 interim change)
Improvements--no-experimental-fetch flag to disable fetch preview
SecurityOpenSSL 3.0 with improved FIPS support

OpenSSL 3.0 -- The First Node.js Release to Ship It

Node.js 17 is the first release line to bundle OpenSSL 3.0, a significant security milestone. OpenSSL 3.0 brings improved FIPS 140-2 support, a provider model for algorithm implementations, and deprecation of legacy ciphers.

This introduced some compatibility breakage for apps using older cipher suites or PKCS#11 backends. If your app is crypto-heavy, test thoroughly on Node.js 17 before upgrading from Node.js 16.

readline/promises -- Async/Await for CLI Input

The new readline/promises API replaces event-driven readline patterns with clean async/await syntax. Useful for interactive CLI tools and scripting.

import { createInterface } from 'node:readline/promises';

const rl = createInterface({ input: process.stdin, output: process.stdout });
const answer = await rl.question('What is your name? ');
console.log(`Hello, ${answer}`);
rl.close();

No more nested callbacks or event listener juggling for simple interactive prompts.

Error.cause and V8 9.5 JavaScript Features

Error.cause allows chaining errors with original context, a pattern widely used in languages like Java and Python that finally lands natively in JavaScript.

async function fetchData(url) {
  try {
    return await fetch(url);
  } catch (err) {
    throw new Error(`Failed fetching ${url}`, { cause: err });
  }
}

The cause is preserved in the error chain and shows up in stack traces, making debugging async code significantly cleaner.

DNS Resolver Behavior Change

Node.js 17 initially changed DNS result ordering in a way that broke some apps, then partially reverted. The net result: DNS queries now use the system resolver order. If your app had relied on a specific ordering of returned addresses, verify this behavior in your target environment.

FAQ

Why does my crypto code break on Node.js 17?
OpenSSL 3.0 disables some older algorithms and cipher suites by default. Check if you are using MD4, RC4, or short RSA keys -- these may now require explicit enablement via a legacy provider.

Is Node.js 17 an LTS release?
No. Node.js 17 is a Current release. It reached end-of-life in June 2022. The concurrent LTS was Node.js 16.

How does readline/promises compare to the inquirer package?
readline/promises is low-level -- basic line input. For rich interactive prompts with menus, validation, and formatting, inquirer or @inquirer/prompts is still the better choice.

Does the OpenSSL 3.0 FIPS mode work out of the box?
Not automatically. FIPS mode requires explicit configuration -- you need a FIPS-validated OpenSSL provider installed and --enable-fips passed at startup, or set via crypto.setFips(true).

Can I still use node:readline (non-promises) in Node.js 17?
Yes. The callback-based node:readline API is not removed. readline/promises is an additive module alongside the existing API.

Releases In Branch 17.x

VersionRelease datenpm version
17.9.101 Jun 2022
(3 years ago)
8.11.0
17.9.007 Apr 2022
(4 years ago)
8.5.5
17.8.022 Mar 2022
(4 years ago)
8.5.5
17.7.217 Mar 2022
(4 years ago)
8.5.2
17.7.110 Mar 2022
(4 years ago)
8.5.2
17.7.009 Mar 2022
(4 years ago)
8.5.2
17.6.022 Feb 2022
(4 years ago)
8.5.1
17.5.010 Feb 2022
(4 years ago)
8.4.1
17.4.018 Jan 2022
(4 years ago)
8.3.1
17.3.110 Jan 2022
(4 years ago)
8.3.0
17.3.017 Dec 2021
(4 years ago)
8.3.0
17.2.030 Nov 2021
(4 years ago)
8.1.4
17.1.009 Nov 2021
(4 years ago)
8.1.2
17.0.120 Oct 2021
(4 years ago)
8.1.0
17.0.019 Oct 2021
(4 years ago)
8.1.0