17.9.1

Latest release in branch 17.x
Released 3 years ago (June 01, 2022)

Software Node.js
Branch 17.x
Status
End of life
End of bug fixes June 01, 2022
End of security fixes June 01, 2022
First official release version 17.0.0
First official release date 4 years ago (October 19, 2021)
Release notes https://github.com/nodejs/node/releases/tag/v17.9.1
Source code https://github.com/nodejs/node/tree/v17.9.1
Documentation https://nodejs.org/dist/latest-v17.x/docs/api/
Download https://nodejs.org/download/release/latest-v17.x/
Node.js 17.x Releases View 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

Version Release date npm version
17.9.1 3 years ago
(June 01, 2022)
8.11.0
17.9.0 4 years ago
(April 07, 2022)
8.5.5
17.8.0 4 years ago
(March 22, 2022)
8.5.5
17.7.2 4 years ago
(March 17, 2022)
8.5.2
17.7.1 4 years ago
(March 10, 2022)
8.5.2
17.7.0 4 years ago
(March 09, 2022)
8.5.2
17.6.0 4 years ago
(February 22, 2022)
8.5.1
17.5.0 4 years ago
(February 10, 2022)
8.4.1
17.4.0 4 years ago
(January 18, 2022)
8.3.1
17.3.1 4 years ago
(January 10, 2022)
8.3.0
17.3.0 4 years ago
(December 17, 2021)
8.3.0
17.2.0 4 years ago
(November 30, 2021)
8.1.4
17.1.0 4 years ago
(November 09, 2021)
8.1.2
17.0.1 4 years ago
(October 20, 2021)
8.1.0
17.0.0 4 years ago
(October 19, 2021)
8.1.0