From e4f5ca6ce14722b06f74b0fd5e3dc5c6d78ed70d Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:23:26 -0400 Subject: [PATCH 01/15] Add incident report for March 31, 2025 --- incidents/2026-03-31.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 incidents/2026-03-31.md diff --git a/incidents/2026-03-31.md b/incidents/2026-03-31.md new file mode 100644 index 0000000..476245a --- /dev/null +++ b/incidents/2026-03-31.md @@ -0,0 +1,28 @@ +# 2025-03-31 Incident Report + +- Incident Commander: @MattIPv4 +- Severity Level: P2 + +For a brief period of time, the downloads page was blank due to a false assumption on their always being an active LTS version of Node. + +## Timeline + +TODO + +## Impact + +Users navigating to `https://nodejs.org/en/download/current` would see a blank page instead of the proper download instructions. + +`https://nodejs.org/en/download` was unaffected by this issue. + +## Root Cause + +TODO + +## Fix + +TODO + +## Follow-up Work + +TODO From 1f701aa6f2ccf16047bf123cbbe55986da0f8a8b Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:27:03 -0400 Subject: [PATCH 02/15] add root cause --- incidents/2026-03-31.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/incidents/2026-03-31.md b/incidents/2026-03-31.md index 476245a..31af886 100644 --- a/incidents/2026-03-31.md +++ b/incidents/2026-03-31.md @@ -3,7 +3,7 @@ - Incident Commander: @MattIPv4 - Severity Level: P2 -For a brief period of time, the downloads page was blank due to a false assumption on their always being an active LTS version of Node. +For a brief period of time, the downloads page was blank due to a false assumption on their always being a Current version of Node. ## Timeline @@ -17,7 +17,9 @@ Users navigating to `https://nodejs.org/en/download/current` would see a blank p ## Root Cause -TODO +According to a static schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS, however, with v26.x +[still unreleased](https://github.com/nodejs/node/pull/62526), this left no Current release left, causing the website to not properly +render components relying on the Current release of Node.js. ## Fix From ea196556f0d892ef898d2b573e4e4816ced99a9d Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:34:26 -0400 Subject: [PATCH 03/15] Update and rename 2026-03-31.md to 2026-04-01.md --- incidents/2026-03-31.md | 30 ---------------------------- incidents/2026-04-01.md | 43 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 30 deletions(-) delete mode 100644 incidents/2026-03-31.md create mode 100644 incidents/2026-04-01.md diff --git a/incidents/2026-03-31.md b/incidents/2026-03-31.md deleted file mode 100644 index 31af886..0000000 --- a/incidents/2026-03-31.md +++ /dev/null @@ -1,30 +0,0 @@ -# 2025-03-31 Incident Report - -- Incident Commander: @MattIPv4 -- Severity Level: P2 - -For a brief period of time, the downloads page was blank due to a false assumption on their always being a Current version of Node. - -## Timeline - -TODO - -## Impact - -Users navigating to `https://nodejs.org/en/download/current` would see a blank page instead of the proper download instructions. - -`https://nodejs.org/en/download` was unaffected by this issue. - -## Root Cause - -According to a static schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS, however, with v26.x -[still unreleased](https://github.com/nodejs/node/pull/62526), this left no Current release left, causing the website to not properly -render components relying on the Current release of Node.js. - -## Fix - -TODO - -## Follow-up Work - -TODO diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md new file mode 100644 index 0000000..d3b3dbc --- /dev/null +++ b/incidents/2026-04-01.md @@ -0,0 +1,43 @@ +# 2025-04-01 Incident Report + +- Incident Commander: @MattIPv4 +- Severity Level: P2 + +For a brief period of time, the downloads page was blank due to a false assumption on their always being a Current version of Node. + +## Timeline + +- **2025-04-01 00:00 AM UTC**: Start of impact. Node.js v25.x expected to move from Current to Active LTS. + +- **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542) + +- **2025-04-01 00:51 AM UTC**: Impact reported in [OpenJSF Slack](https://openjs-foundation.slack.com/archives/CVAMEJ4UV/p1775004674164609). Investigation began. + +- **2025-04-01 01:00 AM UTC**: Root casued identified. + +- **2025-04-01 01:20 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) opened to resolve issue. + +- **2025-04-01 01:33 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) merged. Impact resolved shortly after. + + +## Impact + +Users navigating to `https://nodejs.org/en/download/current` would see a blank page instead of the proper download instructions. + +`https://nodejs.org/en/download` was unaffected by this issue. + +## Root Cause + +According to a static schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS, however, with v26.x +[still unreleased](https://github.com/nodejs/node/pull/62526), this left no Current release left, causing the website to not properly +render components relying on the Current release of Node.js. + +## Fix + +[nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) resolved the issue by changing the detection of a release's `status` +to require `.lts.isLts` to be `true` before allowing a release to be marked as `Active LTS` or `Maintenance LTS`. + +## Follow-up Work + +* When possible, avoid relying on [the expected schedule](https://raw.githubusercontent.com/nodejs/Release/main/schedule.json), as various + delays and circumstances cause this to be inaccurate to actual release dates. From a36ec13d4593bb34b68078edcfb95f20e0c5312f Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:34:56 -0400 Subject: [PATCH 04/15] fixup! --- incidents/2026-04-01.md | 1 - 1 file changed, 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index d3b3dbc..c750801 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -19,7 +19,6 @@ For a brief period of time, the downloads page was blank due to a false assumpti - **2025-04-01 01:33 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) merged. Impact resolved shortly after. - ## Impact Users navigating to `https://nodejs.org/en/download/current` would see a blank page instead of the proper download instructions. From 4c745a391e21b14cb3eb76284992863175431c98 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:39:56 -0400 Subject: [PATCH 05/15] Update incidents/2026-04-01.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index c750801..1be404e 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -13,7 +13,7 @@ For a brief period of time, the downloads page was blank due to a false assumpti - **2025-04-01 00:51 AM UTC**: Impact reported in [OpenJSF Slack](https://openjs-foundation.slack.com/archives/CVAMEJ4UV/p1775004674164609). Investigation began. -- **2025-04-01 01:00 AM UTC**: Root casued identified. +- **2025-04-01 01:00 AM UTC**: Root cause identified. - **2025-04-01 01:20 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) opened to resolve issue. From ee8d5e01da2b7b25dd84b4b624dea1479c11b5a5 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:40:04 -0400 Subject: [PATCH 06/15] Update incidents/2026-04-01.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index 1be404e..fb46a2e 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -3,7 +3,7 @@ - Incident Commander: @MattIPv4 - Severity Level: P2 -For a brief period of time, the downloads page was blank due to a false assumption on their always being a Current version of Node. +For a brief period of time, the downloads page was blank due to a false assumption on there always being a Current version of Node. ## Timeline From bfd2f35c5c40dfd06617546500fc99a32ac4214a Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:40:22 -0400 Subject: [PATCH 07/15] Update incidents/2026-04-01.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index fb46a2e..fdc318b 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -7,7 +7,7 @@ For a brief period of time, the downloads page was blank due to a false assumpti ## Timeline -- **2025-04-01 00:00 AM UTC**: Start of impact. Node.js v25.x expected to move from Current to Active LTS. +- **2025-04-01 12:00 AM UTC**: Start of impact. Node.js v25.x expected to move from Current to Active LTS. - **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542) From 074303604dffa9be288613c134921e5279b3f7c6 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:41:33 -0400 Subject: [PATCH 08/15] typo fix --- incidents/2026-04-01.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index fdc318b..dd7003f 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -1,4 +1,4 @@ -# 2025-04-01 Incident Report +# 2026-04-01 Incident Report - Incident Commander: @MattIPv4 - Severity Level: P2 @@ -9,15 +9,15 @@ For a brief period of time, the downloads page was blank due to a false assumpti - **2025-04-01 12:00 AM UTC**: Start of impact. Node.js v25.x expected to move from Current to Active LTS. -- **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542) +- **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542). - **2025-04-01 00:51 AM UTC**: Impact reported in [OpenJSF Slack](https://openjs-foundation.slack.com/archives/CVAMEJ4UV/p1775004674164609). Investigation began. - **2025-04-01 01:00 AM UTC**: Root cause identified. -- **2025-04-01 01:20 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) opened to resolve issue. +- **2025-04-01 01:20 AM UTC**: [nodejs/nodejs.org#8787](https://github.com/nodejs/nodejs.org/issues/8787) opened to resolve issue. -- **2025-04-01 01:33 AM UTC**: [nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) merged. Impact resolved shortly after. +- **2025-04-01 01:33 AM UTC**: [nodejs/nodejs.org#8787](https://github.com/nodejs/nodejs.org/issues/8787) merged. Impact resolved shortly after. ## Impact @@ -33,7 +33,7 @@ render components relying on the Current release of Node.js. ## Fix -[nodejs/nodejs.org#8786](https://github.com/nodejs/nodejs.org/issues/8787) resolved the issue by changing the detection of a release's `status` +[nodejs/nodejs.org#8787](https://github.com/nodejs/nodejs.org/issues/8787) resolved the issue by changing the detection of a release's `status` to require `.lts.isLts` to be `true` before allowing a release to be marked as `Active LTS` or `Maintenance LTS`. ## Follow-up Work From d37fe884a2cd7ab95b6191e8c1b48bdb735c4a9a Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 21:51:35 -0400 Subject: [PATCH 09/15] Apply suggestions from code review Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index dd7003f..a072ebd 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -3,11 +3,11 @@ - Incident Commander: @MattIPv4 - Severity Level: P2 -For a brief period of time, the downloads page was blank due to a false assumption on there always being a Current version of Node. +For a brief period of time, the `/downloads/current` page was blank due to a logic bug in determining the Current version of Node.js. The main `/downloads` page was unaffected and could be accessed throughout. ## Timeline -- **2025-04-01 12:00 AM UTC**: Start of impact. Node.js v25.x expected to move from Current to Active LTS. +- **2025-04-01 12:00 AM UTC**: Start of impact. Release schedule indicates that Node.js 25.x has moved from Current to Active LTS. - **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542). @@ -23,13 +23,15 @@ For a brief period of time, the downloads page was blank due to a false assumpti Users navigating to `https://nodejs.org/en/download/current` would see a blank page instead of the proper download instructions. +Users accessing any page on the website would see only the 24.x LTS release in the footer, no Current release. + `https://nodejs.org/en/download` was unaffected by this issue. ## Root Cause -According to a static schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS, however, with v26.x -[still unreleased](https://github.com/nodejs/node/pull/62526), this left no Current release left, causing the website to not properly -render components relying on the Current release of Node.js. +According to the static release schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS. Due to this, the website logic automatically started treating 25.x as an Active LTS major. + +However, no new release of 25.x has yet been made to be marked as LTS, nor has the first release of 26.x been made to become the new Current major. This left the website with no Current release per its logic. ## Fix From 68ffb85f7a1b0efc4caa8ba57d2abdf68a0311a8 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 22:17:08 -0400 Subject: [PATCH 10/15] Update 2026-04-01.md Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index a072ebd..900e29a 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -35,8 +35,7 @@ However, no new release of 25.x has yet been made to be marked as LTS, nor has t ## Fix -[nodejs/nodejs.org#8787](https://github.com/nodejs/nodejs.org/issues/8787) resolved the issue by changing the detection of a release's `status` -to require `.lts.isLts` to be `true` before allowing a release to be marked as `Active LTS` or `Maintenance LTS`. +[nodejs/nodejs.org#8787](https://github.com/nodejs/nodejs.org/issues/8787) resolved the issue by changing the detection of a release's `status` to require `.lts.isLts` to be `true` before allowing a release to be marked as `Active LTS` or `Maintenance LTS`, ensuring that a given major has a valid LTS release available before the website considers it an LTS release. ## Follow-up Work From 647385e9e242cc3e3bd3c8eb0d6b5fb7e1888fad Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 22:17:15 -0400 Subject: [PATCH 11/15] Update 2026-04-01.md Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index 900e29a..593c69f 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -7,7 +7,7 @@ For a brief period of time, the `/downloads/current` page was blank due to a log ## Timeline -- **2025-04-01 12:00 AM UTC**: Start of impact. Release schedule indicates that Node.js 25.x has moved from Current to Active LTS. +- **2025-04-01 12:00 AM UTC**: Start of impact. Release schedule indicates that Node.js 25.x has moved from Current to Maintenance LTS. - **2025-04-01 00:14 AM UTC**: Impact identified by [@MattIPv4's monitoring action](https://github.com/MattIPv4/monitors/actions/runs/23825485542). From a7e8610f9c7a91c6c5d24a923dabfb844ab36a61 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 22:17:21 -0400 Subject: [PATCH 12/15] Update 2026-04-01.md Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index 593c69f..fd402a9 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -29,7 +29,7 @@ Users accessing any page on the website would see only the 24.x LTS release in t ## Root Cause -According to the static release schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Active LTS. Due to this, the website logic automatically started treating 25.x as an Active LTS major. +According to the static release schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Maintenance LTS. Due to this, the website logic automatically started treating 25.x as an Active LTS major. However, no new release of 25.x has yet been made to be marked as LTS, nor has the first release of 26.x been made to become the new Current major. This left the website with no Current release per its logic. From 549e0e583f17609a86f45b0a17c80fb00a93d643 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 22:17:27 -0400 Subject: [PATCH 13/15] Update 2026-04-01.md Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index fd402a9..8ae2d85 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -3,7 +3,7 @@ - Incident Commander: @MattIPv4 - Severity Level: P2 -For a brief period of time, the `/downloads/current` page was blank due to a logic bug in determining the Current version of Node.js. The main `/downloads` page was unaffected and could be accessed throughout. +For a brief period of time, the `/en/download/current` page was blank due to a logic bug in determining the Current version of Node.js. The main `/en/download` page was unaffected and could be accessed throughout. ## Timeline From f1f4a2d3261fb082640c7c262fad82bf5d6dbbf7 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Tue, 31 Mar 2026 22:17:53 -0400 Subject: [PATCH 14/15] Update 2026-04-01.md Co-authored-by: Matt Cowley --- incidents/2026-04-01.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index 8ae2d85..40437e9 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -25,7 +25,9 @@ Users navigating to `https://nodejs.org/en/download/current` would see a blank p Users accessing any page on the website would see only the 24.x LTS release in the footer, no Current release. -`https://nodejs.org/en/download` was unaffected by this issue. +`https://nodejs.org/en/download` showed 25.x as an LTS release, but was otherwise unaffected by this issue, with users being able to access download instructions as normal. + +On both the `/en/download` page, and throughout the site in the footer, 24.x continued to be shown as the LTS release, due to it still being the Active LTS major, with 25.x having transitioned directly to Maintenance LTS in the schedule. ## Root Cause From e6a68e860e5ccd2412354a74d5beb45216d4369e Mon Sep 17 00:00:00 2001 From: Matt Cowley Date: Wed, 1 Apr 2026 14:00:31 +0100 Subject: [PATCH 15/15] Apply suggestion from @MattIPv4 --- incidents/2026-04-01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incidents/2026-04-01.md b/incidents/2026-04-01.md index 40437e9..82c7894 100644 --- a/incidents/2026-04-01.md +++ b/incidents/2026-04-01.md @@ -31,7 +31,7 @@ On both the `/en/download` page, and throughout the site in the footer, 24.x con ## Root Cause -According to the static release schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Maintenance LTS. Due to this, the website logic automatically started treating 25.x as an Active LTS major. +According to the static release schedule, on April 1st, 2026, Node.js 25.x was expected to move from Current to Maintenance LTS. Due to this, the website logic automatically started treating 25.x as a Maintenance LTS major. However, no new release of 25.x has yet been made to be marked as LTS, nor has the first release of 26.x been made to become the new Current major. This left the website with no Current release per its logic.