Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problems“Invalid parameters” is a protocol-level symptom, not a diagnosis. Find the protocol command named in the full error, then inspect the argument or field it identifies: a value may have the wrong type, a required field may be missing, or the Puppeteer, browser, and protocol combination may not support the call as configured. The right fix depends on the exact message and the API that failed.
Start with the command and field in the full error
Do not troubleshoot from the phrase “Invalid parameters” alone. Puppeteer sends commands to a browser protocol, and different commands can return similar wording for unrelated failures. Examples in reported cases include Page.printToPDF, IO.read, Network.emulateNetworkConditions, cookie setting through WebDriver BiDi, and viewport metrics.
Capture the whole error and stack trace. Read the command name and any detail after the generic phrase: text such as “integer value expected,” a named field, or “mandatory field missing” is usually more useful than the headline. It narrows the investigation to the particular call and argument that was rejected.
- Command: Which Puppeteer method was running, and which protocol command appears in the error?
- Field: Does the detail name an argument, such as
width,scale, ordownloadThroughput? - Expected shape: Does the message specify a type or required value?
- Environment: Which Puppeteer and Node.js versions, browser build, operating system, and protocol mode are involved?
These details prevent a common mistake: applying a workaround from a PDF, cookie, or viewport error to a different command just because the same generic phrase appears.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
Use a focused diagnostic sequence
- Save the complete failure. Keep the message and stack, including the protocol command and field/type detail. Record the Puppeteer method and the arguments passed to it.
- Check the values at the call site. Trace each value back to its source. Environment variables, command-line arguments, JSON, and form data often arrive as strings even when the API expects a number or boolean.
- Check the object shape and required fields. Compare the arguments with the API and protocol expectations for the versions actually installed. Do not assume a field is optional—or required—based only on another method’s behavior.
- Record the version and protocol context. Include Puppeteer, Node.js, browser/Chromium, OS, and whether the call uses Chrome DevTools Protocol (CDP) or WebDriver BiDi. This is especially important for protocol-specific behavior.
- Reduce the call to a minimal reproduction. Remove unrelated setup, then change one argument at a time. This helps establish whether the failure follows a value, a required field, the browser/protocol combination, or another part of the call.
For values that come from outside the program, convert and validate them deliberately before calling Puppeteer. A conversion should not silently turn missing or malformed input into a plausible-looking value. For example, check that a numeric input is finite and that a boolean is actually true or false; do not rely on a non-empty string such as "false" behaving as a boolean.
Check common failure patterns by API
PDF options: verify each option’s type
A reported Page.printToPDF failure named scale and preferCSSPageSize. The community answer for that particular case identified a numeric value for scale and a boolean for preferCSSPageSize; it also noted that default values can be omitted. If your error names one of these fields, inspect the value immediately before the PDF call rather than assuming the option’s type from a configuration file.
For example, if a CLI argument supplies a scale, parse and validate it before use:
Rank #2
- Programming Code Console Log Javascript Debugging T-shirt. Funny Console Log design perfect for computer geeks, frontend developers, programmers, IT specialist, or engineers. Perfect for men women or anyone who love code and programming as a gift birthda.
- Great gift idea for anybody who works with or as an IT professionals, computer scientists, developers, programmers, software engineers, coders, and anyone with an interest in Javascript, HTML, and any other languages. Wear it to the office or anywhere!
- Hardcover journal with 240 line-ruled pages (120 sheets)
- Built-in elastic closure and ribbon bookmark
- Includes an expandable inner storage pocket and a pen holder
const scaleInput = process.env.PDF_SCALE;
const scale = Number(scaleInput);
if (!Number.isFinite(scale)) {
throw new Error("PDF_SCALE must be a number");
}
const preferCSSPageSize = process.env.PREFER_CSS_PAGE_SIZE === "true";
await page.pdf({
path: "page.pdf",
scale,
preferCSSPageSize,
});
This is an illustration of type handling, not a universal PDF configuration. Confirm which options your installed Puppeteer API accepts and whether the reported field is actually the one being rejected.
PDF stream reads: distinguish a handle error from option validation
A Puppeteer issue opened June 21, 2019 described an IO.read failure after setting page content and generating a PDF. The reporter used Puppeteer 1.18.0, Node.js 8.10, and AWS Lambda on Amazon Linux; the detail said a string value was expected for handle. That report does not establish a current, general fix. If your stack points to IO.read, investigate the stream/protocol operation and runtime context; changing scale or viewport dimensions is not a reasoned response unless your own error identifies those fields.
Network emulation: verify the named field, but do not assume a general defect
A February 6, 2024 issue report used Puppeteer ^21.11.0, Node v20.11.0, Windows, and page.emulateNetworkConditions. It reported a missing mandatory downloadThroughput field, but the issue was marked not reproducible and closed as not planned. Treat it as an example of why to inspect the exact required-field message—not as proof of a general Puppeteer bug or a validated universal fix.
Rank #3
If your own error names downloadThroughput, compare the object passed to the method with the API supported by your installed version. Confirm that the value is present and in the expected form before changing unrelated network settings.
Cookie partition keys: establish protocol and browser compatibility
A July 2024 report concerned page.setCookie with partitionKey while using WebDriver BiDi and Chrome. The issue body described a cookie deserialization failure. A maintainer comment on July 24 said Puppeteer did not yet support Chrome M127 at that time; a July 29 comment said the reported example required secure: true. Later comments distinguished BiDi behavior from non-BiDi cases.
Those remarks are historical and specific to the issue. They are not current release guidance. If your cookie call fails, first establish whether WebDriver BiDi is enabled, inspect the cookie object and the exact protocol error, and verify support for the Puppeteer/browser combination you are actually running. Do not assume that adding secure: true or changing browser versions is the answer to every partition-key failure.
Rank #4
- Programming Code Console Log Javascript Debugging T-shirt. Funny Console Log design perfect for computer geeks, frontend developers, programmers, IT specialist, or engineers. Perfect for men women or anyone who love code and programming as a gift birthda.
- Great gift idea for anybody who works with or as an IT professionals, computer scientists, developers, programmers, software engineers, coders, and anyone with an interest in Javascript, HTML, and any other languages. Wear it to the office or anywhere!
- Hardcover journal with 240 line-ruled pages (120 sheets)
- Built-in elastic closure and ribbon bookmark
- Includes an expandable inner storage pocket and a pen holder
Viewport metrics: pass dimensions in the expected shape
A TechOverflow article from August 15, 2019 describes a defaultViewport configured as the string "1920x1080", followed by an error expecting integer width and height. The useful diagnostic lesson is about shape and type: a single dimension string is not equivalent to an object containing numeric dimensions.
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({
width: 1920,
height: 1080,
});
Use the viewport API and options supported by your installed Puppeteer version. If the error names width or height, check that each is a number in the expected object rather than a string or a combined "widthxheight" value.
Separate argument errors from compatibility problems
A rejected value and an unsupported protocol/browser combination can look similar at the top level, but they call for different investigations. If the detail names a specific field and expected type, begin by validating that argument. If the arguments appear correct, compare the Puppeteer, browser, and protocol versions and check whether the failing feature is supported in that combination.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC 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 & 11Protocol mode matters. The 2024 cookie report specifically involved WebDriver BiDi, while other examples concern different calls. Record whether you are using CDP or BiDi rather than treating “Puppeteer” as a single protocol path. Historical comments about Chrome M127 describe support at that time; they do not establish which current Chrome release is compatible.
A network emulation issue that was closed as not reproducible likewise does not prove that Puppeteer has a broad defect. A useful reproduction includes the smallest failing call and the exact versions, environment, and protocol mode needed to interpret it.
Troubleshoot without making the failure harder to isolate
- The message only says “Invalid parameters.” Expand the full stack and find the protocol command. If the detail is absent, log the arguments passed to the exact Puppeteer method, taking care not to expose secrets in cookies or headers.
- A number or boolean came from configuration. Check its runtime type, not just how it looks in a config file. Parse string input explicitly, reject invalid values, and pass the resulting value in the API’s expected type.
- A required field is reported missing. Inspect the exact object sent to that method. Confirm the field name, spelling, and value at the moment of the call; do not infer requirements from a different Puppeteer API.
- A cookie call fails only in BiDi. Confirm that BiDi is active, then investigate cookie serialization and the browser/Puppeteer combination. Treat issue-specific historical suggestions as clues, not current guarantees.
- The failure follows a PDF operation but names
IO.read. Keep the stream-handle path separate from PDF option validation. Record the runtime and stack location, since an older Lambda report is not evidence of one present-day fix. - A change appears to fix the problem. Re-run the minimal case with the same browser and protocol, then restore unrelated setup gradually. This helps ensure the change addressed the rejected parameter rather than merely changing timing or execution conditions.
When asking for help, provide the complete error and stack, minimal call, Puppeteer and Node.js versions, browser build, operating system, and protocol mode. Redact credentials, session cookies, private URLs, and other sensitive values while preserving the types and object structure needed to understand the failure.
Or skip the browser setup
If your goal is to produce website screenshots rather than debug a Puppeteer integration, ScreenshotNeo is a separate screenshot API and MCP server; it does not repair a Puppeteer “Invalid parameters” error. It can take a screenshot from one GET request, without requiring you to configure a browser in your own code.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo documentation for request options. Cookie banners are accepted and removed before capture, along with known newsletter popups and chat widgets; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides screenshot and PDF tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up free for 1,000 screenshots a month, with no card required.
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.

