RabbitMQ

Node.js End of Life: Node 20, 18 and 16 EOL Dates

Scott Sternloff

By Scott Sternloff, Senior Enterprise Architect

LinkedIn · Updated

Node.js 20 reached end of life on 30 April 2026. Node.js 18 reached end of life on 30 April 2025, Node.js 16 on 11 September 2023 and Node.js 14 on 30 April 2023. The supported release lines today are Node.js 22 (Maintenance LTS, end of life 30 April 2027), Node.js 24 (Active LTS, end of life 30 April 2028) and Node.js 26 (Current). The dates below come from the Node.js Release Working Group schedule and the nodejs.org releases page, checked on 9 October 2026.

How the Node.js release schedule works

Through Node.js 26, the project cuts a new major version every six months: even numbers in April, odd numbers in October. Odd-numbered lines are never promoted to long-term support and stop being maintained after about six months. Even-numbered lines move to Active LTS in October, get 12 months of active support, then 18 months of Maintenance LTS, which carries critical bug fixes and security updates only. That adds up to roughly 30 months of LTS coverage, after which the line is end of life. The project advises running only Active LTS or Maintenance LTS releases in production.

From Node.js 27 the cycle becomes annual and every major version moves to LTS, so the odd/even rule stops applying. Existing lines keep the dates below.

Node.js end of life dates by version

VersionCodenameReleasedActive LTSMaintenance LTSEnd of life
Node.js 26Not yet assigned5 May 202628 October 202620 October 202730 April 2029
Node.js 24Krypton6 May 202528 October 202520 October 202630 April 2028
Node.js 22Jod24 April 202429 October 202421 October 202530 April 2027
Node.js 20Iron18 April 202324 October 202322 October 202430 April 2026
Node.js 18Hydrogen19 April 202225 October 202218 October 202330 April 2025
Node.js 16Gallium20 April 202126 October 202118 October 202211 September 2023
Node.js 14Fermium21 April 202027 October 202019 October 202130 April 2023

Source: the nodejs/Release schedule, which notes that dates for lines still in support are subject to change. The last releases of the end-of-life lines were 20.20.2, 18.20.8, 16.20.2 and 14.21.3, according to nodejs.org. If node -v prints anything lower than v22, you are running an unsupported runtime.

Node 20 end of life: what changed on 30 April 2026

Node.js 20 "Iron" got its last fixes in the 24 March 2026 security release (20.20.2). The next security release, on 29 July 2026, shipped only for 22.x, 24.x and 26.x. It fixed eleven CVEs, three rated High, including a heap use-after-free in HTTP/2 send handling and a Permission Model bug that can over-grant filesystem access. The advisory repeats the project's standing warning that end-of-life versions are always affected when a security release occurs, and no 20.x build was published.

That is what Node 20 EOL means in practice. Nothing stops on 1 May; the process keeps serving traffic, and every advisory after that date stays open. The nodejs.org end-of-life page adds toolchain breakage as shared libraries move on, npm packages dropping old runtimes, and audit findings, since many compliance frameworks forbid unmaintained runtimes.

Node 18 EOL and Node 16 EOL

Node.js 18 "Hydrogen" reached end of life on 30 April 2025 on the normal 30-month schedule. Its final release was 18.20.8.

Node.js 16 "Gallium" was cut short. It shipped with OpenSSL 1.1.1, and when that library's support was due to end on 11 September 2023, the project brought Node 16's end of life forward by seven months from April 2024 to the same day rather than swap OpenSSL inside a stable release line. The change was announced on 8 June 2022. Node.js 14 "Fermium" reached end of life on 30 April 2023.

Cloud runtime deprecations for Node 16, 18 and 20

Serverless platforms follow the upstream calendar and deprecate the runtime whether or not you are ready.

PlatformNode.js 16Node.js 18Node.js 20
AWS Lambda (deprecation date)12 June 20241 September 202530 April 2026
Google Cloud Run functions (deprecation / decommission)30 January 2024 / 30 January 202530 April 2025 / 30 October 202530 April 2026 / 30 October 2026
Azure FunctionsNo longer listed. Microsoft's supported versions are Node.js 24 (end of support 30 April 2028) and Node.js 22 (30 April 2027).

On AWS Lambda, AWS may no longer apply security patches to a deprecated runtime and functions using it lose eligibility for technical support, though they can still be invoked. For nodejs16.x, nodejs18.x and nodejs20.x, Lambda blocks creating new functions from 29 July 2027 and blocks updating existing ones from 31 August 2027. The supported runtimes are nodejs22.x (deprecated 30 April 2027) and nodejs24.x (30 April 2028). On Google Cloud, the Node.js 20 runtime is decommissioned on 30 October 2026, three weeks from the date of this post. On Azure, Node.js 22 is also the last version that will run on the Linux Consumption plan, which itself retires on 30 September 2028.

AceMQ's AWS Lambda support and Azure Functions support cover the runtime migration and the incidents after it.

Why Node.js upgrades stall: native addons and OpenSSL 3

Native addons and the ABI. Compiled addons are built against a specific NODE_MODULE_VERSION: 83 for Node.js 14, 93 for 16, 108 for 18, 115 for 20, 127 for 22 and 137 for 24. An addon compiled for one value will not load on another, so every dependency with a C or C++ binding must be rebuilt or come with prebuilt binaries for the target runtime. Addons written against Node-API avoid this, because Node-API is ABI-stable across Node.js versions, and moving a binding to it is often the real work behind an upgrade.

OpenSSL 3. Node.js 17 moved to OpenSSL 3.0, which makes Node.js 18 the first LTS line on it. OpenSSL 3 tightened the default rules on allowed algorithms and key sizes, and code that relies on a legacy algorithm fails with ERR_OSSL_EVP_UNSUPPORTED. The --openssl-legacy-provider flag exists as a temporary workaround. A service jumping from Node.js 14 or 16 to 22 crosses this boundary along with years of V8 and npm changes.

Your options for Node.js 14 to 20 past end of life

  • Keep the version you run, and keep it patched. OSSeva, AceMQ's extended support platform, backports CVE fixes to Node.js 14, 16, 18 and 20 after the community has stopped, including V8 and libuv vulnerabilities, on a quarterly cadence. Builds arrive as signed Docker images and apt, yum or binary packages, so a containerized service changes its image tag and nothing else. Higher tiers add transitive npm dependency scanning, compliance documentation and managed operations with a 15-minute P1 SLA. For a portfolio that cannot all move this quarter, it takes the security deadline off the upgrade plan.
  • Upgrade to Node.js 24. Node.js 22 is already in Maintenance LTS and ends on 30 April 2027, so a service leaving 18 or 20 today gets a year more from 24. Rebuild native addons and test TLS code paths under OpenSSL 3 before switching the runtime identifier.

Either way, start with an inventory: log process.version from every service, run AWS Trusted Advisor's deprecated runtimes check, and list the base images in your registry. Most teams find more Node.js versions in production than they expected.

Sources

Frequently Asked Questions

When is Node 20 end of life?

Node.js 20 "Iron" reached end of life on 30 April 2026. Its last release was 20.20.2, shipped with the 24 March 2026 security release. The 29 July 2026 security release fixed eleven CVEs for 22.x, 24.x and 26.x only, with no 20.x build.

When did Node 18 reach end of life?

Node.js 18 "Hydrogen" reached end of life on 30 April 2025, after the standard 30 months of LTS. Its final release was 18.20.8.

Why did Node 16 reach end of life early?

Node.js 16 shipped with OpenSSL 1.1.1, whose support ended on 11 September 2023. Rather than switch OpenSSL inside a stable line, the project moved Node 16's end of life forward seven months from April 2024 to 11 September 2023.

Which Node.js versions are supported now?

Node.js 22 (Maintenance LTS, end of life 30 April 2027), Node.js 24 (Active LTS until 20 October 2026, end of life 30 April 2028) and Node.js 26 (Current, entering Active LTS on 28 October 2026). Every other line, including the odd-numbered 25.x, is end of life.

When does Node 22 reach end of life?

On 30 April 2027. It entered Maintenance LTS on 21 October 2025, so it now receives critical bug fixes and security updates only. Teams upgrading from 18 or 20 today get a year more support by moving to Node.js 24.

Can I get security patches for Node.js 18 or 20 after end of life?

Yes. The Node.js project does not patch them, but AceMQ's OSSeva platform backports CVE fixes, including V8 and libuv vulnerabilities, to Node.js 14, 16, 18 and 20 on a quarterly cadence, delivered as signed Docker images and apt, yum or binary packages.

What happens to AWS Lambda functions on nodejs20.x?

The nodejs20.x runtime was deprecated on 30 April 2026, so AWS may no longer apply security patches and the functions are no longer eligible for technical support. Existing functions keep running. Lambda blocks creating new nodejs20.x functions from 29 July 2027 and updating existing ones from 31 August 2027.

Free Consultation

Get Expert Eyes on Your RabbitMQ Cluster

Whether you're troubleshooting a production incident, planning a migration, or want a second opinion on your architecture — our team is ready. No pitch, just answers.

Email Us