The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Puppeteer resolves a browser build ID from three inputs: the browser, the target platform, and a tag or identifier. Its public resolveBuildId(browser, platform, tag) function returns a promise containing the browser-specific build ID. In Puppeteer’s package install flow, it selects a configured version, falls back to its pinned revision, or uses latest, then resolves that choice before installation.
What resolveBuildId does
The public function takes the browser, platform, and tag as separate inputs. The platform matters: resolution is not a single global lookup, because the requested binary must correspond to the target operating system and architecture. The result is a string identifying the browser build for those inputs.
Conceptually, the call looks like this:
const buildId = await resolveBuildId(browser, platform, tag);
The API contract defines the inputs and result. The actual tag-to-build mapping depends on the browser data maintained by Puppeteer’s package; the same selector should not be assumed to work identically for every supported browser.
How Puppeteer chooses what to resolve
When Puppeteer’s package installer runs, it chooses an unresolved identifier in this order:
#1 Best Overall
configuration.version, when configured;- otherwise, the browser’s pinned value in
PUPPETEER_REVISIONS[browser]; - otherwise,
latest.
It then calls resolveBuildId with the selected browser and platform, and passes the resolved ID to the installer. If the resolved value differs from the original selection, the package flow retains the original as buildIdAlias. This is package installation behavior; a direct consumer of @puppeteer/browsers can instead call resolution and installation explicitly.
Channel tags versus exact versions
A channel tag is a moving selection: it asks for the build associated with a release channel on the chosen platform. An exact version specifies a particular browser version rather than a channel. Puppeteer’s package overview demonstrates both forms:
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
npx @puppeteer/browsers install chrome@stablerequests Chrome’s stable channel.npx @puppeteer/browsers install [email protected]requests that exact version.
The documentation lists channel tags such as stable, beta, dev, canary, and latest, and the package CLI also demonstrates exact browser versions and milestone-style selections. Treat these as browser-specific selectors, not a universal promise that every browser accepts the same values. Puppeteer browsers API and Puppeteer installation guide.
Installing a resolved build ID directly
For direct use of @puppeteer/browsers, resolution and installation are separate operations. Installation options require browser, buildId, and cacheDir; the platform can be auto-detected when omitted.
Recommended Free Tools
Rank #3
import { Browser, detectBrowserPlatform, install, resolveBuildId } from '@puppeteer/browsers';
const browser = Browser.CHROME;
const platform = detectBrowserPlatform();
if (!platform) {
throw new Error('Could not detect a supported browser platform');
}
const tag = 'stable';
const buildId = await resolveBuildId(browser, platform, tag);
const installed = await install({
browser,
buildId,
cacheDir: './.cache/puppeteer',
buildIdAlias: tag,
});
console.log(`Installed Chrome build ${buildId} at ${installed.executablePath}`);
The example keeps stable as an alias for the resolved ID, matching the documented purpose of buildIdAlias: preserving alias metadata that can support selection by alias in the launch command. Adapt the browser, tag, and cache directory to your application. The install options and build-ID caching behavior are documented in the Puppeteer browsers API.
What a build ID guarantees—and what it does not
A build ID identifies a browser binary for downloading and caching. It is used to distinguish cached binaries, and Puppeteer’s documentation describes build IDs as unique identifiers. It does not by itself guarantee that an arbitrary browser build is compatible with your Puppeteer version.
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
Puppeteer guarantees compatibility with its bundled browser. You may provide a different executablePath, but the documentation places that choice at your own risk. If you need a non-bundled browser, verify it against your actual Puppeteer version and workload rather than assuming that successful resolution means supported compatibility. Puppeteer configuration and launch options.
Common problems and fixes
- Resolution fails for a tag: Confirm the browser and tag are a valid combination; channel names are not guaranteed to be interchangeable across browsers. Try a browser-specific documented channel or an exact version.
- The wrong binary is selected: Check all three resolution inputs—browser, platform, and tag—and check whether Puppeteer’s configured version or pinned revision takes precedence over the fallback.
- Installation cannot use the resolved ID: Pass the same browser and resolved
buildIdtoinstall, and provide the requiredcacheDir. If platform autodetection is unsuitable for your target, pass an explicit platform. - The browser installs but behaves incompatibly: A valid build ID only identifies a downloadable binary. Prefer Puppeteer’s bundled browser for the documented compatibility guarantee, or validate the alternate executable against your use case.
- A channel selection changes over time: That is expected for a moving channel request. Use an exact version when you need a fixed selection, and retain the resulting ID for reproducible downloads and cache behavior.
Or skip the browser setup
If your goal is a website screenshot rather than browser automation, ScreenshotNeo offers a screenshot API and MCP server. One GET request returns an image or PDF; it removes cookie banners, newsletter popups, and chat widgets before capture, and bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. AI agents can use its MCP tools to take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
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)
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}`);
See the ScreenshotNeo API documentation for request options, and sign up free for 1,000 screenshots a month with no card.
Quick Recap
Best Value
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.




