Playwright "Executable doesn't exist" - Run npx playwright install
By Daniel Zoghalchali·Latchkey
Playwright tried to launch a browser whose binary is not on disk. Installing the npm package does not download 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 prints the install command; every test errors identically because no browser is present.
playwright
browserType.launch: Executable doesn't exist at
/home/runner/.cache/ms-playwright/chromium-1140/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 @playwright/test 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 Linux system libraries the browsers need.
Terminal
npm ci
npx playwright install --with-deps
npx playwright test
Or use the official Playwright image
.github/workflows/ci.yml
# in CIcontainer:mcr.microsoft.com/playwright:v1.49.0-jammy
How to prevent it
Run npx playwright install --with-deps after dependency install in CI.
Cache ~/.cache/ms-playwright keyed on the Playwright version.
Prefer the official Playwright Docker image for a matched toolchain.
Frequently asked questions
What causes ""Executable doesn't exist""?
npm ci installs @playwright/test but not the browser binaries. Without an explicit playwright install step, the executable is missing.
How do I fix "Executable doesn't exist"?
Run the install step after npm ci; --with-deps also installs the Linux system libraries the browsers need.
Can Latchkey fix this automatically?
Yes. Latchkey runs your GitHub Actions on managed runners that detect this failure, apply the fix, and retry the job automatically - self-healing is on by default.