What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.
#1 Best Overall
- 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.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →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.
Rank #2
- Storage: 16GB Flash Memory
- OS: Chrome OS
- Screen Size: 11.6"
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.
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
- 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.
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
- 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
HOMEthe 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.
A practical deployment checklist
- Run
npm ls puppeteer puppeteer-coreand inspect the import. - For
puppeteer, runnpx puppeteer browsers installwhere the application will run. - Record
whoami,HOME, andPUPPETEER_CACHE_DIRin both build and runtime stages. - Use one cache directory, install into it after configuration, and include it in the final artifact.
- For
puppeteer-core, provision Chrome separately and setexecutablePathto an executable path inside the runtime. - Run a minimal page-open test before adding your application’s navigation, PDF, or screenshot logic.
- 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.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.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsOne 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
- Storage: 16 GB Flash Memory
- OS: Chrome OS
- Screen Size: 11.6"
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.
Recommended Free Tools
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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
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.




