Playwright "browserType.launch: Executable doesn't exist"
Playwright tried to launch a browser whose binary is not on disk. Installing the npm package does not download the browsers - you must run npx playwright install (or use the official image).
What this error means
Tests fail before running with "browserType.launch: Executable doesn't exist at .../chromium-XXXX/chrome-linux/chrome." The message even suggests the install command. Every test errors identically because no browser is present.
browserType.launch: Executable doesn't exist at
/home/runner/.cache/ms-playwright/chromium-1124/chrome-linux/chrome
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright Test or Playwright was just installed ║
║ or updated. Please run the following command to download ║
║ new browsers: npx playwright install ║
╚════════════════════════════════════════════════════════════╝Common causes
Browsers never downloaded
npm ci installs the @playwright/test package but not the browser binaries. Without an explicit playwright install step, the executable is missing.
Version drift between package and cache
After a Playwright upgrade, the new version expects a newer browser build than what is cached, so the path it looks for does not exist.
How to fix it
Install the browsers (with OS deps)
Run the install step after npm ci. --with-deps also installs the system libraries the browsers need on Linux.
npm ci
npx playwright install --with-deps
npx playwright testOr use the official Playwright image
The mcr.microsoft.com/playwright image ships the matching browsers and deps preinstalled.
# in CI
container: mcr.microsoft.com/playwright:v1.49.0-jammyHow to prevent it
- Always run
npx playwright install --with-depsafter dependency install in CI. - Pin the Playwright version and cache
~/.cache/ms-playwrightkeyed on it. - Prefer the official Playwright Docker image for a matched toolchain.