Playwright "Executable doesn't exist ... run npx playwright install" in CI
Playwright looked for the Chromium/Firefox/WebKit binary in its browsers directory and it is not there. The @playwright/test package installs only the library; the browser binaries are a separate download you must run with playwright install.
What this error means
Tests fail before the first navigation with "Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium-XXXX/chrome-linux/chrome" and the hint "Looks like Playwright Test or Playwright was just installed or updated. Please run the following command to download new browsers: npx playwright install".
Error: 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
The install step never ran
Only npm ci ran, which installs the @playwright/test package but not the browser binaries. The launch then finds nothing at the expected path.
A restored cache is missing this browser revision
A cached ~/.cache/ms-playwright from an older Playwright version does not contain the new Chromium build the upgraded library now requires.
How to fix it
Run playwright install before the tests
- Add a dedicated step that downloads the browsers after installing node modules.
- Prefer
--with-depsso the OS libraries land in the same step. - Then run the test command.
- run: npm ci
- run: npx playwright install --with-deps
- run: npx playwright testInstall only the browsers you use
If the suite only targets Chromium, download just that browser to cut time and disk.
npx playwright install --with-deps chromiumHow to prevent it
- Always run
playwright installin CI, never assumenpm ciprovides browsers. - Pin
@playwright/testand re-run install when you bump it. - Key any browser cache on the Playwright version so a bump invalidates it.