Skip to content

fix(ci): upgrade Playwright to 1.60 to fix Node 24.16 install hang - #174

Merged
jefago merged 2 commits into
mainfrom
ci/repro-playwright-hang-node24
Jun 15, 2026
Merged

fix(ci): upgrade Playwright to 1.60 to fix Node 24.16 install hang#174
jefago merged 2 commits into
mainfrom
ci/repro-playwright-hang-node24

Conversation

@jefago

@jefago jefago commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Root cause

Node 24.16.0 introduced an extract-zip/yauzl regression (nodejs/node#63487) that makes playwright install hang after the browser download completes, during zip extraction, for Playwright versions before 1.60 (microsoft/playwright#41000, closed as a dup — Playwright treats it as a Node bug, not something they'll keep working around).

actions/setup-node with node-version: '24' now resolves to 24.16.0, so the Release job (Node 24) hung while PR Tests (Node 22) passed the identical step. The last green release predated 24.16.0. The earlier .npmrc/npx theory was a red herring — the direct-binary install hung too.

Fix

Upgrade @playwright/test and playwright 1.56.1 → 1.60.0 — the version confirmed to install cleanly on Node 24.16.0. This keeps both workflows on Node 24 (latest) instead of pinning to a frozen 24.15.0 that would miss security updates.

  • 1.60.0 is 34 days old, so .npmrc min-release-age=7 accepts it (it correctly skipped the too-new 1.61.0 published today).
  • Full suite (654 tests) passes locally on 1.60.0 across chromium/webkit/firefox.

Also:

  • Bump PR Tests to Node 24 so they exercise the same environment as Release (this PR's own run is the validation).
  • Add timeout-minutes to the browser-install step in both workflows so any future stall fails fast instead of hanging for hours.

Once green + merged, the v0.2.29 tag gets re-pointed to the new head to re-run the release.

🤖 Generated with Claude Code

jefago and others added 2 commits June 15, 2026 19:25
The release workflow (Node 24) hangs on "Install playwright browsers" while PR
tests (Node 22) pass the identical step — the only difference is the Node
version. Bump PR tests to Node 24 so the hang reproduces on the cheap PR path,
and add DEBUG=pw:install + a step timeout so the run shows where it stalls and
fails fast instead of hanging for hours.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Node 24.16.0 introduced an extract-zip/yauzl regression (nodejs/node#63487)
that makes `playwright install` hang after the browser download completes,
during zip extraction, for Playwright versions before 1.60
(microsoft/playwright#41000, closed as a dup of the Node bug). `setup-node: '24'`
now resolves to 24.16.0, which is why the release job (Node 24) hung while PR
tests (Node 22) passed the identical step.

Upgrade @playwright/test and playwright 1.56.1 -> 1.60.0, the version confirmed
to install cleanly on Node 24.16.0. This keeps both workflows on Node 24 (latest)
rather than pinning to a frozen 24.15.0 that would miss security updates. 1.60.0
is 34 days old, so `.npmrc` min-release-age accepts it (it correctly skipped the
too-new 1.61.0). Full suite (654 tests) passes locally on 1.60.0.

Also bumps PR tests to Node 24 so they exercise the same environment as release,
and adds a timeout-minutes guard to the browser-install step in both workflows.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jefago jefago changed the title ci: reproduce Playwright install hang on Node 24 (PR tests) fix(ci): upgrade Playwright to 1.60 to fix Node 24.16 install hang Jun 15, 2026
@jefago
jefago merged commit 6e59f82 into main Jun 15, 2026
2 checks passed
@jefago
jefago deleted the ci/repro-playwright-hang-node24 branch June 15, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant