Can't install Puppeteer on Debian - Chromium download fails

I’m trying to set up Puppeteer on my Debian 8.7.1 system but running into issues. I followed these installation steps:

First, I installed Chrome:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get -f install
sudo dpkg -i google-chrome-stable_current_amd64.deb

Then Node.js and Puppeteer:

apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | bash -
sudo apt-get install -y nodejs
npm i puppeteer

The last command fails with this error:

> [email protected] install /root/node_modules/puppeteer
> node install.js

ERROR: Failed to download Chromium r499413! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
Error: Download failed: server returned code 403. URL: https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/499413/chrome-linux.zip

I tried using npm config set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true but it still attempts to download Chromium. How can I fix this installation problem?

try setting that env var right b4 the install: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm i puppeteer. after that, specify the path to ur chrome with executablePath. did the trick for me!

Been there, done that. The 403 error sucks but there’s a better way to handle this.

Skip wrestling with environment variables and manual Chrome paths - automate the whole Puppeteer workflow instead. You’re hitting installation headaches now, but the real pain starts when you need to manage browser sessions, handle crashes, or scale your scraping.

I’ve watched teams waste weeks debugging Puppeteer deployments across different Debian versions. Browser binary compatibility issues are endless. Last month I helped migrate a scraping pipeline that kept breaking from Chrome updates and dependency conflicts.

Moving browser automation to a managed service worked way better. No more Chromium downloads, executable paths, or system compatibility nightmares. Send automation requests, get clean responses back.

These installation problems are just the beginning. Wait until you’re running multiple browser instances or dealing with memory leaks in production.

Check out Latenode for browser automation. It handles Puppeteer complexity behind the scenes so you can focus on actual scraping logic instead of fighting installations.

That 403 error means the Chromium snapshot URL is blocked or inaccessible. I’ve hit this same problem on older Debian systems - their build servers reject requests from certain regions or outdated setups. Since you’ve got Chrome installed already, just tell Puppeteer to use that instead of downloading its own version. Set the executable path in your code: puppeteer.launch({executablePath: '/usr/bin/google-chrome'}). The npm config route won’t work here because Puppeteer looks for environment variables during install, not npm settings.