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
| Version | Codename | Released | Active LTS | Maintenance LTS | End of life |
|---|---|---|---|---|---|
| Node.js 26 | Not yet assigned | 5 May 2026 | 28 October 2026 | 20 October 2027 | 30 April 2029 |
| Node.js 24 | Krypton | 6 May 2025 | 28 October 2025 | 20 October 2026 | 30 April 2028 |
| Node.js 22 | Jod | 24 April 2024 | 29 October 2024 | 21 October 2025 | 30 April 2027 |
| Node.js 20 | Iron | 18 April 2023 | 24 October 2023 | 22 October 2024 | 30 April 2026 |
| Node.js 18 | Hydrogen | 19 April 2022 | 25 October 2022 | 18 October 2023 | 30 April 2025 |
| Node.js 16 | Gallium | 20 April 2021 | 26 October 2021 | 18 October 2022 | 11 September 2023 |
| Node.js 14 | Fermium | 21 April 2020 | 27 October 2020 | 19 October 2021 | 30 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.
| Platform | Node.js 16 | Node.js 18 | Node.js 20 |
|---|---|---|---|
| AWS Lambda (deprecation date) | 12 June 2024 | 1 September 2025 | 30 April 2026 |
| Google Cloud Run functions (deprecation / decommission) | 30 January 2024 / 30 January 2025 | 30 April 2025 / 30 October 2025 | 30 April 2026 / 30 October 2026 |
| Azure Functions | No 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
- Node.js Release Working Group: release schedule
- Node.js: Node.js releases
- Node.js: End-of-Life
- Node.js: Tuesday, 24 March 2026 security releases
- Node.js: Wednesday, 29 July 2026 security releases
- Node.js: Bringing forward the end-of-life date for Node.js 16
- Node.js: Node.js 17.0.0 release notes (OpenSSL 3.0)
- Node.js: ABI version registry
- Node.js: Node-API documentation
- AWS: Lambda runtimes and deprecation dates
- Google Cloud: Cloud Run functions runtime support
- Microsoft: Supported languages in Azure Functions
- OSSeva: Node.js 14 to 20 extended support
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.
Go deeper on support and version lifecycles
- ComparisonPostgreSQL vs MySQL: Where They Differ and How to ChooseSee the comparison
- ComparisonOpenSearch vs Elasticsearch: How the Fork Has DivergedSee the comparison
- ComparisonOpen Source and Vendor Support Windows ComparedSee the comparison
- ComparisonMessage Broker Support Options ComparedSee the comparison