Skip to content

[Bug]: Unable to install playwright bundled browsers via terminal #42578

Closed

Description

Version

1.63.0

Steps to reproduce

  1. Tried to install the playwright npm init playwright@latest
  2. Do you want to use TypeScript or JavaScript? · TypeScript
  3. Where to put your end-to-end tests? · src/steps
  4. Add a GitHub Actions workflow? (Y/n) · true
  5. Install Playwright browsers (can be done manually via 'npx playwright install')? (Y/n) · true
  6. Wait for the installation run to finish

Expected behavior

Should install the bundled playwright browsers

Actual behavior

in the debug log file
0 verbose cli C:\Program Files\nodejs\node.exe C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js 1 info using [email protected] 2 info using [email protected] 3 silly config load:file:C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\npmrc 4 silly config load:file:C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\.npmrc 5 silly config load:file:C:\Users\ruby_thinkbitsolutio\.npmrc 6 silly config load:file:C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\etc\npmrc 7 verbose title npm init playwright@latest 8 verbose argv "init" "playwright@latest" 9 verbose logfile logs-max:10 dir:C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_logs\2026-09-05T15_01_55_717Z- 10 verbose logfile C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_logs\2026-09-05T15_01_55_717Z-debug-0.log 11 silly logfile start cleaning logs, removing 2 files 12 silly logfile done cleaning log files 13 silly packumentCache heap:2348810240 maxSize:587202560 maxEntrySize:293601280 14 http fetch GET 200 https://registry.npmjs.org/create-playwright 87ms (cache revalidated) 15 silly packumentCache heap:2348810240 maxSize:587202560 maxEntrySize:293601280 16 notice run [email protected] npx 17 notice run create-playwright 18 verbose stack Error: command failed 18 verbose stack at promiseSpawn (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:22:22) 18 verbose stack at spawnWithShell (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:124:10) 18 verbose stack at promiseSpawn (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:12:12) 18 verbose stack at runScriptPkg (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\run-script\lib\run-script-pkg.js:70:13) 18 verbose stack at runScript (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\run-script\lib\run-script.js:8:12) 18 verbose stack at run (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\libnpmexec\lib\run-script.js:62:10) 18 verbose stack at async exec (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\node_modules\libnpmexec\lib\index.js:329:10) 18 verbose stack at async Init.execCreate (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\lib\commands\init.js:141:5) 18 verbose stack at async Init.exec (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\lib\commands\init.js:46:14) 18 verbose stack at async Npm.exec (C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\node_modules\npm\lib\npm.js:194:9) 19 verbose pkgid [email protected] 20 error code 1 21 error path C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate 22 error command failed 23 error command C:\WINDOWS\system32\cmd.exe /d /s /c create-playwright 24 verbose cwd C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate 25 verbose os Windows_NT 10.0.26200 26 verbose node v24.15.0 27 verbose npm v12.0.2 28 verbose exit 1 29 verbose code 1 30 error A complete log of this run can be found in: C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_logs\2026-09-05T15_01_55_717Z-debug-0.log

in the terminal
Writing src\steps\example.spec.ts. Writing package.json. Downloading browsers (npx playwright install)… npm notice run [email protected] npx npm notice run playwright install Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms at ClientRequest.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:8793:15) at Object.onceWrapper (node:events:630:28) at ClientRequest.emit (node:events:509:28) at TLSSocket.emitRequestTimeout (node:_http_client:948:9) at Object.onceWrapper (node:events:630:28) at TLSSocket.emit (node:events:521:24) at Socket._onTimeout (node:net:610:8) at listOnTimeout (node:internal/timers:605:17) at process.processTimers (node:internal/timers:541:7) Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms at ClientRequest.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:8793:15) at Object.onceWrapper (node:events:630:28) at ClientRequest.emit (node:events:509:28) at TLSSocket.emitRequestTimeout (node:_http_client:948:9) at Object.onceWrapper (node:events:630:28) at TLSSocket.emit (node:events:521:24) at Socket._onTimeout (node:net:610:8) at listOnTimeout (node:internal/timers:605:17) at process.processTimers (node:internal/timers:541:7) Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms at ClientRequest.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:8793:15) at Object.onceWrapper (node:events:630:28) at ClientRequest.emit (node:events:509:28) at TLSSocket.emitRequestTimeout (node:_http_client:948:9) at Object.onceWrapper (node:events:630:28) at TLSSocket.emit (node:events:521:24) at Socket._onTimeout (node:net:610:8) at listOnTimeout (node:internal/timers:605:17) at process.processTimers (node:internal/timers:541:7) Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms at ClientRequest.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:8793:15) at Object.onceWrapper (node:events:630:28) at ClientRequest.emit (node:events:509:28) at TLSSocket.emitRequestTimeout (node:_http_client:948:9) at Object.onceWrapper (node:events:630:28) at TLSSocket.emit (node:events:521:24) at Socket._onTimeout (node:net:610:8) at listOnTimeout (node:internal/timers:605:17) at process.processTimers (node:internal/timers:541:7) Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms at ClientRequest.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:8793:15) at Object.onceWrapper (node:events:630:28) at ClientRequest.emit (node:events:509:28) at TLSSocket.emitRequestTimeout (node:_http_client:948:9) at Object.onceWrapper (node:events:630:28) at TLSSocket.emit (node:events:521:24) at Socket._onTimeout (node:net:610:8) at listOnTimeout (node:internal/timers:605:17) at process.processTimers (node:internal/timers:541:7) Failed to install browsers Error: Failed to download Chrome for Testing 153.0.8010.12 (playwright chromium v1243), caused by Error: Download failure, code=1 at ChildProcess.<anonymous> (C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate\node_modules\playwright-core\lib\coreBundle.js:32428:32) at ChildProcess.emit (node:events:509:28) at ChildProcess._handle.onexit (node:internal/child_process:295:12) Error: Command failed: npx playwright install at genericNodeError (node:internal/errors:985:15) at wrappedFn (node:internal/errors:539:14) at checkExecSyncError (node:child_process:925:11) at execSync (node:child_process:997:15) at executeCommands (C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_npx\d352e76cc6b4974c\node_modules\create-playwright\lib\index.js:8272:39) at Generator.run (C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_npx\d352e76cc6b4974c\node_modules\create-playwright\lib\index.js:8356:5) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async _Command.<anonymous> (C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_npx\d352e76cc6b4974c\node_modules\create-playwright\lib\index.js:8661:3) at async _Command.parseAsync (C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_npx\d352e76cc6b4974c\node_modules\create-playwright\lib\index.js:2148:9) { status: 1, signal: null, output: [ null, null, null ], pid: 4580, stdout: null, stderr: null } npm error code 1 npm error path C:\Users\ruby_thinkbitsolutio\Documents\Playwright Learn\Playwright Boilerplate npm error command failed npm error command C:\WINDOWS\system32\cmd.exe /d /s /c create-playwright npm error A complete log of this run can be found in: C:\Users\ruby_thinkbitsolutio\AppData\Local\npm-cache\_logs\2026-09-05T15_01_55_717Z-debug-0.log

Additional context

In VS Code Powershell Terminal

Environment

System:
    OS: Windows 11 10.0.26200
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
    Memory: 1.52 GB / 11.78 GB
  Binaries:
    Node: 24.15.0 - C:\Program Files\nodejs\node.EXE
    npm: 12.0.2 - C:\Program Files\nodejs\npm.CMD
  IDEs:
    VSCode: 1.136.0 - C:\Users\ruby_thinkbitsolutio\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD
    Cursor: 3.9.16 - C:\Users\ruby_thinkbitsolutio\AppData\Local\Programs\cursor\resources\app\bin\cursor.CMD
    opencode: 1.17.11 - C:\Users\ruby_thinkbitsolutio\AppData\Roaming\npm\opencode.CMD
  npmPackages:
    @playwright/test: ^1.63.0 => 1.63.0

Activity

  1. github-actions commented on Sep 8, 2026

    @github-actions
    Contributor

    Hi, I'm the Playwright bot and I took a first look at this on Windows.

    This is a network timeout reaching the browser CDN, not a Playwright bug. The telling line in your log is:

    Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms
    

    Playwright wrote the project files fine; it only failed while downloading the Chrome build — each attempt gave up after 30s. I reproduced the setup on a Windows 11 runner and the download side is healthy from here:

    • That exact zip URL responds 200 with Content-Length: 205123748 (~205 MB).
    • npx playwright install chromium completed successfully (Chrome for Testing + headless shell + winldd all downloaded).

    So the browsers and the CDN are fine — the connection between your machine and cdn.playwright.dev is timing out. This is almost always a proxy, firewall, VPN, or slow/unstable link on the client side. A ~205 MB download that can't sustain throughput will trip the 30s-per-request timeout.

    Things to try
    • Just re-run npx playwright install — transient network drops are the usual cause.
    • If you're behind a corporate proxy, set HTTPS_PROXY (and HTTP_PROXY) so the downloader can route through it.
    • If the CDN is blocked/throttled on your network, point at a mirror with PLAYWRIGHT_DOWNLOAD_HOST.
    • Check for a VPN/antivirus/firewall inspecting or throttling the TLS connection to cdn.playwright.dev.

    If none of that helps, a curl -v https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip -o NUL from the same shell would show where the connection stalls.

    What I ran
    • OS: Windows (GitHub Actions windows-latest)
    • version: tip-of-tree, @playwright/test@next → 1.64.0-alpha-2026-09-08
    • HEAD on the reported zip URL → 200, Content-Length: 205123748
    • npx playwright install chromium → exit 0, all artifacts downloaded from cdn.playwright.dev

    Triaged on Windows by the Playwright bot - agent run

  2. ByteJuggler commented on Sep 28, 2026

    @ByteJuggler

    Hmmm. FWIW, I ran into this problem tonight:

    > npx playwright install
    Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip
    Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms
        at ClientRequest.<anonymous> (C:\<path>\node_modules\playwright-core\lib\coreBundle.js:8793:15)
        at Object.onceWrapper (node:events:630:28)
        at ClientRequest.emit (node:events:509:28)
        at TLSSocket.emitRequestTimeout (node:_http_client:948:9)
        at Object.onceWrapper (node:events:630:28)
        at TLSSocket.emit (node:events:521:24)
        at Socket._onTimeout (node:net:610:8)
        at listOnTimeout (node:internal/timers:605:17)
        at process.processTimers (node:internal/timers:541:7)
    Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip
    Error: Request to https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip timed out after 30000ms
        at ClientRequest.<anonymous> (C:\<path>\node_modules\playwright-core\lib\coreBundle.js:8793:15)
        at Object.onceWrapper (node:events:630:28)
        at ClientRequest.emit (node:events:509:28)
        at TLSSocket.emitRequestTimeout (node:_http_client:948:9)
        at Object.onceWrapper (node:events:630:28)
        at TLSSocket.emit (node:events:521:24)
        at Socket._onTimeout (node:net:610:8)
        at listOnTimeout (node:internal/timers:605:17)
        at process.processTimers (node:internal/timers:541:7)
    Downloading Chrome for Testing 153.0.8010.12 (playwright chromium v1243) from https://cdn.playwright.dev/builds/cft/153.0.8010.12/win64/chrome-win64.zip
    

    But clicking on that link downloaded the file just fine. So, something in node, on Windows 11, can sometimes interfere with downloading Chromium.

    Root cause found (in my case): broken IPv6 via Teredo, plus the IPv4 fallback never running

    Same symptoms as the original report: npx playwright install times out on cdn.playwright.dev, but the same URL downloads fine in a browser and with curl. Windows 11, home wired connection, no proxy. Node <v24.15.0>, Playwright <Version 1.63.0> (chromium v1243).

    TL;DR

    The machine had no native IPv6, but the Teredo tunnel was active (natawareclient, state qualified), so Windows had an IPv6 default route that didn't actually work. Node tried the CDN's IPv6 address first, that attempt hung, and the socket was destroyed before the IPv4 fallback was attempted. Browsers and curl recover from this, but the Playwright download didn't.

    Fix: netsh interface teredo set state disabled (admin shell). The install then worked immediately.

    How to check if this is you (Windows)

    powershell
    Get-NetRoute -DestinationPrefix '::/0'   # any route? via which interface?
    netsh interface teredo show state        # "qualified" = active Teredo tunnel
    curl.exe -6 -I https://cdn.playwright.dev/  # fails => IPv6 path is broken

    If the only ::/0 route goes through Teredo, or IPv6 is otherwise half-configured, this is likely your problem and disabling should fix it. In my case this probably happened because this is a long-lived Win10 install that was also upgraded to Win11 at one point. After disabling everything worked as expected.

  3. iudeen commented on Sep 30, 2026

    @iudeen

    In MAC, I had the same issue. I got it fixed by setting IPv6 to Link-Local Only.

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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions