Skip to content
Latchkey

Puppeteer "Failed to launch the browser process" (no sandbox)

Puppeteer could not start Chrome. As root in a container, Chrome refuses to run without --no-sandbox; the same launch also needs headless and shm-related flags in CI.

What this error means

Launch fails with "Failed to launch the browser process!" and "Running as root without --no-sandbox is not supported," or a "No usable sandbox!" message. No page ever opens.

puppeteer
Error: Failed to launch the browser process!

[0617/120000.123:FATAL:zygote_host_impl_linux.cc(...)] No usable sandbox!
Update your kernel or see https://chromium.../suid_sandbox_development.md

Common causes

Running as root without --no-sandbox

CI containers run as root, where Chrome's setuid sandbox is unavailable. Without --no-sandbox the process refuses to start.

Missing headless/shm flags

In a constrained container Chrome also needs --disable-dev-shm-usage (and headless) to avoid crashing on the small default /dev/shm.

How to fix it

Pass CI-safe launch args

test.js
const browser = await puppeteer.launch({
  headless: 'new',
  args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],
});

Or raise container shared memory

Terminal
docker run --shm-size=2g ...   # instead of --disable-dev-shm-usage

How to prevent it

  • Always launch with --no-sandbox --disable-dev-shm-usage in CI.
  • Raise --shm-size for browser-heavy jobs.
  • Bake a known-good Chrome into the runner image.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →