Chromium Browser Launch Fails with Symbol Error on Ubuntu When Using Puppeteer

I’m having trouble with PDF generation using Puppeteer on my Ubuntu server. Everything runs fine until I try to start the browser, then I get a symbol lookup error.

The error message looks like this:

Error: Failed to launch the browser process!
/home/user/.cache/puppeteer/chrome/linux-130.0.6723.58/chrome-linux64/chrome: symbol lookup error: /home/user/.cache/puppeteer/chrome/linux-130.0.6723.58/chrome-linux64/chrome: undefined symbol: snd_device_name_get_hint

My browser configuration:

const browserInstance = await puppeteer.launch({
  headless: true,
  args: [
    '--no-gpu',
    '--disable-web-security',
    '--disable-features=VizDisplayCompositor',
    '--disable-extensions',
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-dev-shm-usage',
    '--disable-accelerated-2d-canvas',
    '--disable-background-timer-throttling',
    '--disable-renderer-backgrounding',
    '--disable-backgrounding-occluded-windows',
    '--disable-ipc-flooding-protection',
    '--mute-audio',
    '--disable-hang-monitor',
    '--disable-component-extensions-with-background-pages',
    '--disable-client-side-phishing-detection',
    '--disable-sync',
    '--disable-prompt-on-repost',
    '--disable-default-apps',
    '--hide-scrollbars',
    '--metrics-recording-only',
    '--no-first-run',
    '--safebrowsing-disable-auto-update',
    '--password-store=basic',
    '--use-mock-keychain'
  ],
  ignoreHTTPSErrors: true,
  userDataDir: './browser-data'
});

I’ve tried several fixes:

  1. Deleted Puppeteer cache folder completely
  2. Fresh Puppeteer installation
  3. Installed audio libraries like libasound2-dev
  4. Updated all system packages
  5. Restarted the server multiple times

The problem keeps coming back. Anyone dealt with this before or have other ideas to try?

Thanks for any help!

This symbol error happens when your Chrome binary doesn’t match your system’s library versions. Had the same issue on Ubuntu 20.04 after a system update broke compatibility. Force Puppeteer to download a specific Chrome version that plays nice with your Ubuntu release. Set PUPPETEER_CHROMIUM_REVISION before installing - I used revision 1095492 (Chrome 109) and it fixed everything. Also try adding --disable-audio-output to your launch args since it’s audio-related. What worked for me was installing chromium-browser from Ubuntu repos and using executablePath to point Puppeteer there instead of the bundled version. System Chromium usually plays better with your installed libraries.

Also check for missing libgtk dependencies. That symbol error usually means Chrome can’t find the right audio libraries, but GTK issues can cause the same problem. Run ldd /path/to/chrome/binary | grep 'not found' to see what’s actually missing - beats guessing which packages you need.

Had the exact same issue last month on a fresh Ubuntu 22.04 server. Chrome needs ALSA sound libraries even when running headless. Installing libasound2-dev won’t cut it - you need the runtime library too. Run: sudo apt install libasound2 libasound2-plugins. That snd_device_name_get_hint symbol comes from the ALSA library Chrome links to at startup, even with --mute-audio. After installing those packages, clear your Puppeteer cache with rm -rf ~/.cache/puppeteer and let it grab a fresh Chrome binary. Fixed it permanently on three different Ubuntu servers for me. This happens because Chrome expects certain system libraries that minimal server installs don’t include.