Browser Launch Failure with EACCES Kill Error in Puppeteer Cluster on Ubuntu 24.04

I’m encountering a problem when attempting to initialize a Puppeteer Cluster setup on my Ubuntu 24.04 system. The specific error that keeps appearing is:

Failed to create browser cluster: Unable to start browser, error: kill EACCES

Here are the troubleshooting methods I’ve attempted:

  1. Reinstalled chromium-browser several times and double-checked the installation path
  2. Installed necessary system libraries:
sudo apt install libasound2 libatk1.0-0 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libxss1 libgconf-2-4 libgtk-3-0 libxshmfence1
  1. Configured the executablePath to point to /usr/bin/chromium-browser
  2. Updated file permissions:
sudo chmod 755 /usr/bin/chromium-browser
  1. Cleared node_modules and reinstalled packages

My current browser initialization code looks like this:

const initializeBrowserCluster = async () => {
  try {
    const config = {
      headless: 'new',
      args: [
        '--no-sandbox',
        '--disable-background-timer-throttling',
        '--disable-web-security',
        '--disable-features=TranslateUI'
      ],
      executablePath: process.env.BROWSER_PATH || '/usr/bin/chromium-browser'
    }

    const clusterInstance = await Cluster.launch({
      concurrency: Cluster.CONCURRENCY_PAGE,
      maxConcurrency: 5,
      puppeteerOptions: config,
      timeout: 30000
    })
    return clusterInstance
  } catch (err) {
    console.log('Browser cluster initialization failed:', err.message)
  }
}

The EACCES kill error persists despite these attempts. What could be causing this permission issue?

System Information:

  • Operating System: Ubuntu 24.04 LTS
  • Package versions: puppeteer v21.8.0, puppeteer-cluster v0.23.0
  • Node.js: v18.x
  • Browser: Chromium via apt package

Any suggestions for resolving this or additional debugging approaches would be helpful.

Had this exact headache on Ubuntu 24.04 recently. The EACCES kill error happens when your user can’t terminate chromium processes due to permission issues. First, check your process groups with groups $USER. Then try switching to google-chrome instead of chromium-browser - grab the .deb from Google and install with sudo dpkg -i. Google Chrome has way fewer permission issues than Ubuntu’s chromium packages. Also check your ulimits with ulimit -a since restricted process limits can cause the same kill failures. If you’re in a container or restricted environment, you’ll need to adjust the security context or run with elevated privileges.

try running ur node app with --no-sandbox at system level. had the same issue on ubuntu - apparmor was blocking chromium. check sudo dmesg | grep DENIED for blocked ops. also, make sure chromium works manually first: /usr/bin/chromium-browser --version.

EACCES kill errors are usually snap confinement problems on Ubuntu 24.04. Even if you installed chromium via apt, Ubuntu might still be running the snap version. Check what’s actually running: which chromium-browser and snap list | grep chromium. If snap chromium shows up, nuke it with sudo snap remove chromium and use only the apt version. Also, make sure you’re in the right groups: sudo usermod -a -G audio,video $USER. I hit this same issue last month - removing snap fixed it instantly. Snap’s confined environment breaks puppeteer’s process management.