October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
browser automation

How to Fix Puppeteer “Could Not Find Chrome (ver. 119.0.6045.105)”

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The error means Puppeteer cannot locate the browser executable it expects. It usually indicates that the browser download was skipped, the browser cache is in a different location, or your project uses puppeteer-core, which never downloads Chrome for you. Identify the package first, then install or explicitly point Puppeteer to a browser in the same environment where your script runs.

Chrome 119.0.6045.105 is a historical version shown in a reported Puppeteer issue, not a recommendation to install that exact Chrome release today. Your lockfile and current Puppeteer configuration determine which browser is expected.

What the error actually means

Puppeteer performs browser discovery before it can open a page. When it prints Could not find Chrome (ver. 119.0.6045.105), the lookup did not find the expected executable in the configured location. The message itself identifies two likely explanations: Chrome was not installed, or Puppeteer is looking in a cache directory that does not contain it.

This is different from a browser launch failure. If Puppeteer finds the binary but Chrome exits immediately, the next error may concern operating-system libraries, permissions, sandboxing, or CPU architecture. Do not apply launch flags such as --no-sandbox until you have captured that separate error.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
HP 14" HD Chromebook Laptop for Students, Intel Quad-Core N4120(> N4020), 4GB RAM, 64GB eMMC, WiFi, Webcam, HDMI, USB-A&C, 14 Hours Battery Life, Zoom, Chrome OS, CUE Accessories
  • Intel Celeron N4120: 4 Cores & Threads, 1.1GHz Base Clock, Up to 2.6GHz Boost Clock, 4MB Cache, Intel UHD Graphics 600. The perfect combination of performance, power consumption, and value helps your device handle multitasking smoothly and reliably with four processing cores to divide up the work.
  • 14" HD Display: 14.0-inch diagonal, HD (1366 x 768), micro-edge, anti-glare. See your digital world in a whole new way. Enjoy movies and photos with the great image quality and high-definition detail of 1 million pixels.
  • Memory & Storage: 4 GB LPDDR4x & 64 GB eMMC Storage. Adequate high-bandwidth RAM to smoothly run multiple applications and browser tabs all at once. An embedded multimedia card provides reliable flash-based storage.
  • Ports:2 x USB 3.0 Type-A,1 x USB 3.0 Type-C,1 x HDMI,1 x Headphone Jack
  • Chrome OS: Chromebook is a computer for the way the modern world works, with thousands of apps. Enjoy the seamless simplicity that comes with Google Chrome and Android apps, all integrated into one laptop. It’s fast, simple, and secure.

First, identify which Puppeteer package you use

Package Browser responsibility Normal fix
puppeteer Puppeteer normally downloads a compatible browser during package installation. Run the browser installation command in the build or runtime environment and preserve its cache.
puppeteer-core No browser is downloaded. Your application or platform must provide one. Install or provision Chrome/Chromium separately and pass its actual executable path.

Check your manifest and lockfile rather than inferring from the error text:

npm ls puppeteer puppeteer-core

If both packages appear, inspect the import in the failing script. A project can install puppeteer while a particular module imports puppeteer-core.

Fix a missing download with puppeteer

1. Install the browser explicitly

Package-manager policies can block dependency installation scripts, especially in CI images that use an “ignore scripts” setting. Run Puppeteer’s documented browser installer in the environment that will execute your code:

npx puppeteer browsers install

Run the equivalent command through your package manager if your workflow requires it. A successful local command is not enough if deployment creates a fresh image; the command must run during that image’s build or startup process.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Make the installed files available at runtime

  • Ensure the browser directory is included in the image or deployment artifact.
  • Do not install as one user and run as another unless both use the same cache location and permissions.
  • In a multi-stage container build, copy the Puppeteer cache from the build stage into the final stage.
  • Run the installer after dependencies and Puppeteer’s configuration are in their final state.

After installation, rerun your script in that same environment. If the error changes from “could not find Chrome” to a process-start error, discovery is fixed and you should troubleshoot launch dependencies separately.

Fix a cache-path mismatch

Puppeteer’s default browser cache is ~/.cache/puppeteer. The tilde is resolved for the current operating-system user, so a build run as root and a service run as node can silently use different directories.

Check the effective user and home directory

whoami
echo "$HOME"
ls -la "$HOME/.cache/puppeteer"

On Windows, inspect the equivalent user profile directory and use the shell’s directory-listing command. The important comparison is the account, home directory, and files in the build environment versus the runtime environment.

Choose one shared cache location

Set PUPPETEER_CACHE_DIR to a directory that exists and is readable in both phases. Set it before installing the package and before running the browser installer:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
export PUPPETEER_CACHE_DIR=/app/puppeteer-cache
npx puppeteer browsers install

For a persistent setting, use Puppeteer’s configuration file (for example, a .puppeteerrc file) according to the configuration format supported by your installed version. Whichever method you choose, apply it consistently during installation and execution. Changing the variable after installation does not move an existing browser; install again into the new directory.

Verify the path inside the deployed runtime

Run the following checks from the same container, VM, serverless build artifact, or service account that launches Puppeteer:

Rank #3
ASUS 2026 15" FHD IPS Chromebook, Intel Processor Up to 2.80GHz, 4GB DDR4, 128GB Storage, HDMI, Super-Fast WiFi, Chrome OS, Pastel Blue, Renewed
  • Intel Processor Up to 2.80GHz, 4GB DDR4, 128GB Storage
  • 15" FHD IPS Display, Intel UHD Graphics
  • 1x USB Type C, 1 x USB Type A, 1x Headphone/Microphone Combo Jack, HDMI
  • Super Fast WiFi and Bluetooth, Integrated Webcam
  • Chrome OS, AC Charger Included, Pastel Blue
printf 'user=%s home=%s cache=%sn' "$(whoami)" "$HOME" "${PUPPETEER_CACHE_DIR:-$HOME/.cache/puppeteer}"
find "${PUPPETEER_CACHE_DIR:-$HOME/.cache/puppeteer}" -maxdepth 4 -type f | head

If the directory is empty, the browser was not installed there. If files exist but the process cannot read them, correct ownership and permissions rather than changing Chrome versions.

Use a separately managed browser with puppeteer-core

puppeteer-core deliberately leaves browser management to you. Puppeteer configuration files and environment-variable defaults used by the managed package do not provide a browser for puppeteer-core. Install Chrome or Chromium through your operating-system image, hosting platform, or container build, then pass the executable’s real path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: process.env.CHROME_BIN || '/usr/bin/google-chrome'
  });
  const page = await browser.newPage();
  await page.goto('https://example.com', { waitUntil: 'networkidle2' });
  console.log(await page.title());
  await browser.close();
})();

Replace /usr/bin/google-chrome with the path that exists in your runtime. A path copied from a developer workstation is not evidence that the same path exists in production. Check it directly:

test -x "$CHROME_BIN" && echo "Chrome is executable" || echo "Chrome path is missing or not executable"

If your Puppeteer version supports a named browser channel and that channel is installed, you may use the supported channel option instead of a path. An explicit path is generally easiest to verify in containers and CI.

Why changing the version string is usually the wrong first move

The version in the exception is Puppeteer’s expected browser revision for that installation. It does not prove that the Chrome package itself is damaged, nor that you should hunt for Chrome 119.0.6045.105. First establish:

Rank #4
Lenovo Chromebook 2-in-1 - Lightweight Laptop - Google Gemini - Intel® N150 CPU - 14" WUXGA IPS Touchscreen Display - 4GB RAM - 128GB UFS Storage - Integrated Intel® Graphics - Luna Grey
  • THE BETTER WAY TO LAPTOP – Imagine a Chromebook that’s as flexible as your day: thin and lightweight with built-in Google apps and stress-free security.
  • TAKE HITS KEEP MOVING – Sleek, light, and built to last- the Chromebook 2-in-1 is just 0.69” thick and 3.3lbs. Enjoy long-lasting battery life, fast charging, and military-grade durability for nonstop productivity wherever life takes you.
  • PERFORMANCE THAT MATCHES YOUR HUSTLE – Fuel your ideas with an Intel Core processor and 128GB storage. Boot up in under 10 seconds to start the day powerfully efficient.
  • FLEX YOUR CREATIVITY ANYWHERE, ANYTIME – Create, work, or unwind your way with a versatile 2-in-1 design. Flip easily between laptop, tent, and tablet modes with a responsive touchscreen built for flexibility.
  • BRILLIANT VIEWS AND IMMERSIVE AUDIO – See, hear, and create with awesome clarity. The WUXGA display brings rich detail to your work and play, while audio tuned by Waves MaxxAudio provides immersive, balanced sound.
  • which Puppeteer package and version your lockfile installs;
  • whether its installation script ran;
  • which cache directory was used;
  • which user and HOME the runtime uses; and
  • whether an externally managed executable is configured.

If you intentionally manage a different browser, validate compatibility with your Puppeteer version and test the complete workflow. Do not conceal a missing executable by editing a version string.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical deployment checklist

  1. Run npm ls puppeteer puppeteer-core and inspect the import.
  2. For puppeteer, run npx puppeteer browsers install where the application will run.
  3. Record whoami, HOME, and PUPPETEER_CACHE_DIR in both build and runtime stages.
  4. Use one cache directory, install into it after configuration, and include it in the final artifact.
  5. For puppeteer-core, provision Chrome separately and set executablePath to an executable path inside the runtime.
  6. Run a minimal page-open test before adding your application’s navigation, PDF, or screenshot logic.
  7. If the message changes to a launch error, stop applying browser-discovery fixes and collect the full new error plus OS, architecture, and container details.

Common symptoms, causes, and fixes

Symptom Likely cause Action
Works on a laptop, fails in CI Install scripts were skipped or the CI cache is not preserved. Run npx puppeteer browsers install in the CI build and carry the resulting cache into the job that runs tests.
Browser exists under one account only Different HOME directories resolve different default caches. Use a shared PUPPETEER_CACHE_DIR, reinstall there, and grant the runtime user read/execute access.
puppeteer-core reports the same lookup failure No executable path was supplied, or the path is outside the deployed image. Install a managed browser and pass executablePath; verify the file inside the runtime.
Path is present but Chrome will not start This is a launch-stage problem, not browser discovery. Capture the complete launch error and investigate platform libraries, permissions, sandbox policy, or architecture specific to that environment.
Changing PUPPETEER_CACHE_DIR had no effect The browser was installed before the variable changed. Set the variable for both install and execution, then run the browser installer again.

Performance, reproducibility, and cost considerations

Cache the browser, not assumptions

Downloading a browser on every job adds startup time and can make builds dependent on network availability. Cache the configured browser directory in CI, but invalidate it when the Puppeteer package or browser revision in your lockfile changes. The cache must still be readable by the runtime user.

Keep build and runtime deterministic

Use the same lockfile, configuration, operating-system image, and CPU architecture in the installation and execution stages. A browser artifact built for one architecture cannot be assumed to run on another. Record the installed package version and effective cache path in build logs without exposing credentials.

Separate discovery from application behavior

Test browser discovery with a minimal launch first. Only after that works should you diagnose page timeouts, blocked resources, authentication, or screenshot-specific code. This separation prevents a later navigation problem from being misreported as a missing Chrome installation.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your goal is simply to obtain a reliable website screenshot rather than maintain Puppeteer infrastructure, ScreenshotNeo provides a GET-based screenshot API and an MCP server for AI agents. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

One request returns PNG, JPEG, WebP, or PDF. The API supports full-page captures with lazy images loaded, CSS-selector element captures, device presets or custom viewports, dark mode, retina scale, custom CSS and JavaScript, clicks, waits, request blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, configurable cache TTLs, signed image links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage reporting, and an OpenAPI specification. Its MCP tools are take_screenshot, get_page_info, and capture_pdf.

Best Value

See the ScreenshotNeo documentation for parameters and response headers. A minimal cURL call is:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The same request in Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

And in Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

The Free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan, and yearly billing gives two months free. Sign up for the free ScreenshotNeo plan.

FAQ

Is Chrome 119.0.6045.105 still required?

Not necessarily. That exact revision is historical error context. Use the browser expected by your installed Puppeteer version, or intentionally manage another browser and validate compatibility.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I fix this only by setting executablePath?

Yes when you use puppeteer-core or deliberately manage Chrome yourself. For the managed puppeteer package, installing the expected browser and aligning its cache is usually the appropriate fix.

What information should I include in a bug report?

Include the complete error, package versions from the lockfile, operating system and architecture, whether installation scripts were enabled, the effective user and home directory, cache configuration, and whether the executable exists in the deployed runtime.

Frequently Asked Questions

Does reinstalling Chrome on my desktop repair a deployment error?

Only if the failing process runs on that same machine and user account. A server or CI job needs its own browser artifact or an executable provisioned inside its runtime.

Should I commit Puppeteer’s browser cache to Git?

Usually no. Use your build artifact or CI cache mechanism, keep the configured directory consistent, and ensure the final runtime image contains the browser.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.