Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Puppeteer checks provider support before it tries to download a browser. For each provider, its installation flow passes the requested browser, platform, and build ID to supports. A provider that returns false is skipped; one that returns true must still provide a download URL before Puppeteer can use it. This check describes provider capability for that request—it does not prove that an archive exists or that a browser binary will launch.
What Puppeteer means by provider support
The implementation comment in Puppeteer’s browser installation code summarizes the check: “Check: does this provider support this browser/platform?” The method is a gate in the installation process: it asks whether a provider handles the requested browser and platform, for the supplied build ID. It is not a browser-runtime test, nor a guarantee of binary compatibility.
As an Amazon Associate I earn from qualifying purchases.
The official installation implementation is on the repository’s mutable main branch, so its exact behavior can change. The explanation here describes the documented flow in that implementation; check the code corresponding to the Puppeteer version you have installed when diagnosing version-specific behavior.
Recommended Free Tools
How the installation flow checks providers
- Choose a platform. If you omit
platform, Puppeteer attempts automatic platform detection. If detection cannot determine a platform, installation throws an error rather than trying a download. - Build the provider sequence. Supplied providers are considered first. A supplied
baseUrladds aDefaultProviderconfigured to use that URL. The ordinary default provider is appended when there is nobaseUrl, or whenforceFallbackForTestingis enabled. - Ask each provider about the request. Puppeteer passes the browser, platform, and build ID to the provider’s
supportsmethod. - Skip a provider that declines. If
supportsreturnsfalse, the loop proceeds to the next provider. - Request a download URL. A provider that reports support is asked for a URL. If it returns no URL, Puppeteer continues to the next provider.
- Attempt installation and continue on failure. When a URL is returned, Puppeteer attempts installation from it. Installation errors are recorded and the flow moves on to later providers. If all providers fail, Puppeteer throws an error reporting the provider failures.
The key consequence is that supports is only one decision in a provider sequence. A positive answer does not stop the flow unless the provider also supplies a usable URL and installation succeeds.
#1 Best Overall
How fallback order changes
Provider order matters because the installation flow checks providers in sequence. With custom providers, those providers are placed before the fallback described by the configuration. In the ordinary configuration, Puppeteer appends the default provider. Supplying baseUrl changes this arrangement: it adds a default provider configured with that URL, and the ordinary default provider is not appended unless forceFallbackForTesting is enabled.
When debugging which source Puppeteer will try, inspect the requested providers and the values of baseUrl and forceFallbackForTesting. Do not assume that the standard default source will be tried after a custom base URL in every configuration.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Provider support, download availability, and compatibility are different checks
| Question | What it establishes | What it does not establish |
|---|---|---|
| Does the provider support this request? | Whether that provider claims to handle the browser, platform, and build ID. This is the role of supports. |
That a remote archive exists, is reachable, or can be installed. |
| Can the browser be downloaded? | The canDownload function checks support, obtains a URL, and makes an HTTP HEAD request. It returns true when one such check succeeds. |
That the downloaded binary will launch or is compatible with the installed Puppeteer release. |
| Is this browser version compatible with Puppeteer? | The supported browsers guide maps Puppeteer releases to browser versions. | That a provider accepts the request or that its URL is currently reachable. |
The supported-browser guide says that if an exact Puppeteer version is not listed, the browser version for the immediately prior Puppeteer release applies. Its rows are release-sensitive, so use the entry for the release you are running rather than treating a browser version from another release as universal.
What DefaultProvider and custom providers guarantee
The @puppeteer/browsers API documentation describes DefaultProvider as the standard provider implementation using default sources. It describes BrowserPlatform as the operating-system and architecture combination relevant to browser downloads.
Rank #3
Puppeteer does not officially support custom providers. Its documentation places responsibility for binary compatibility, testing, and maintenance on users of those providers, and says Puppeteer tests and guarantees compatibility with default binaries. Therefore, when a custom provider returns true from supports, that answer reflects the provider’s own capability claim—not a Puppeteer compatibility guarantee.
How the provider check fits the browser installation
Puppeteer’s configuration guide says it downloads and uses a specific Chrome version by default; a caller can instead use another Chrome or Chromium executable by setting its executable path. The installation guide documents automatic downloads of a compatible Chrome for Testing version and a chrome-headless-shell binary, with the latter beginning at Puppeteer v21.6.0. It identifies $HOME/.cache/puppeteer as the default browser cache location beginning with v19.0.0. These are version-scoped documented defaults, not guarantees for every environment.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
For a reliable diagnosis, separate the questions: did platform detection succeed, did a provider accept this browser/platform/build ID, did it return a URL, could that URL be reached, and does the resulting binary match the Puppeteer release? Each answer points to a different part of the setup.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Troubleshooting skipped or failed providers
- No platform detected: provide an explicit platform supported by the installation API, or correct the environment so automatic detection can determine the operating system and architecture. The flow errors before attempting a browser download if detection fails.
- Provider is skipped: check the browser, platform, and build ID passed to
supports. A false result means that provider declines that specific request; it does not necessarily indicate a Puppeteer bug. - Provider accepts the request but is not used: check whether it returns a download URL. A null URL causes the loop to continue.
- Unexpected fallback: review the provider order and whether
baseUrlorforceFallbackForTestingis set. These options affect which default provider is included and where. - URL exists but download fails: distinguish the support decision from network availability.
canDownloadperforms a HEAD request, but an installation attempt can still fail; inspect the reported provider failures and verify the requested build’s URL and network accessibility. - Browser downloads but does not work with Puppeteer: compare the binary with the supported-browser mapping for the installed Puppeteer release. For a custom provider, compatibility testing and maintenance are your responsibility.
Or skip the browser setup
If your goal is to capture a webpage rather than manage Puppeteer browser binaries, ScreenshotNeo provides a screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF; see the API documentation.
Quick Recap
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Sign up free for 1,000 screenshots a month—no card required.
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.




