Skip to content

update.sh fails if https://nodejs.org/dist index incomplete #2514

Description

@MikeMcC399

Current situation

Shortly after a new Node.js release, published meta data can be inconsistent. This is leading to inconsistent working of update.sh / build-automation.mjs

At this moment May 21, 2026 14:45 UTC, the following produces no output:

curl -sSL https://nodejs.org/dist | grep v24.16.0

On the other hand, the following confirms the presence of the directory:

$ curl -I https://nodejs.org/dist/v24.16.0/
HTTP/2 200
date: Thu, 21 May 2026 14:44:04 GMT
content-type: text/html
cache-control: public, max-age=3600, s-maxage=14400
last-modified: Thu, 21 May 2026 13:19:49 GMT
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
server: cloudflare
cf-ray: 9ff45b67bca66e86-TXL

The directory is also fully populated, according to:

curl -sSL https://nodejs.org/dist/v24.16.0/

So whilst node version managers like nvm or n are already able to pull and install Node.js v24.16.0, docker-node automation remains confused.

Steps to reproduce

git clone https://github.com/nodejs/docker-node
cd docker-node
./update.sh 24 trixie
git diff

Logs

update.sh has not found v24.16.0

$ git diff
diff --git a/24/trixie/Dockerfile b/24/trixie/Dockerfile
index c29001bd..8c32d724 100644
--- a/24/trixie/Dockerfile
+++ b/24/trixie/Dockerfile
@@ -12,7 +12,6 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     s390x) ARCH='s390x';; \
     arm64) ARCH='arm64';; \
     armhf) ARCH='armv7l';; \
-    i386) ARCH='x86';; \
     *) echo "unsupported architecture"; exit 1 ;; \
   esac \
   # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150

At the same time, https://github.com/nodejs/docker-node/actions/workflows/automatic-updates.yml shows the following, so https://github.com/nodejs/docker-node/blob/main/build-automation.mjs has found v24.16.0:

Run actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3
22.22.3

24.15.0

25.9.0

26.2.0

There's no musl build for version 24.16.0 yet.

Suggestion

Review what the reliable sources of truth should be and make the script suite more robust.

Possibly consult also with the release team and web team for guidance.

See also Slack conversation https://openjs-foundation.slack.com/archives/C019MGJQ8RH/p1779372640246189

Activity

  1. added theissue type on May 21, 2026
  2. ljharb commented on May 21, 2026

    @ljharb
    SponsorMember

    The source of truth is index.json/index.tab in that directory - that's what i suggest using.

  3. flakey5 commented on May 21, 2026

    @flakey5
    Member

    The source of truth is index.json/index.tab in that directory - that's what i suggest using.

    +1, we even have an issue for moving tooling away from parsing the directory listing since we want to be able to change it in the future if necessary: nodejs/release-cloudflare-worker#131

  4. MikeMcC399 commented on May 21, 2026

    @MikeMcC399
    ContributorAuthor

    Cloudflare caches were purged and update.sh now produces the correct output. That resolves the incident so that publication can continue.

    The underlying problem as described above however is unresolved.

  5. MikeMcC399 commented on Aug 6, 2026

    @MikeMcC399
    ContributorAuthor

    A similar situation arose for the Node.js 26.7.0 release, although locally on my desktop, everything appeared fine, whilst on GitHub's network view of the world the directory listing of https://nodejs.org/dist did not display a v26.7.0 entry (screenshots in #2596 (comment)).

  6. MikeMcC399 commented on Aug 6, 2026

    @MikeMcC399
    ContributorAuthor

    #2598 proposes to resolve

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions