ErrLookup › microsoft/playwright
microsoft/playwright
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. · TypeScript · 846 source files
Analyzed at c8fc3bf8d3 on 2026-08-12. 445 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| Pending client connection closed | exception | error | |
| Failed to connect to MCP relay: ${error.message} | exception | error | |
| Unknown method: ${message.method} | validation | error | |
| Invalid chrome method: ${fullMethod} | validation | error | |
| Unknown chrome path: ${parts.slice(0, i + 1).join('.')}, cal | validation | error | |
| Not a function: ${fullMethod} | validation | error | |
| binding "${bindingName}" has been removed | exception | error | |
| Negative ticks are not supported | validation | error | |
| Cannot fast-forward to the past | validation | error | |
| Callback must be provided to requestAnimationFrame calls | validation | error | |
| Callback must be provided to requestIdleCallback calls | validation | error | |
| Callback must be provided to timer calls | validation | error | |
| Cannot clear timer: timer created with ${schedule}() but cle | validation | error | |
| Can't install fake timers twice on the same global object. | validation | error | |
| Usage: playwright.query('Playwright >> selector'). | validation | error | |
| Usage: playwright.$$('Playwright >> selector'). | validation | error | |
| Usage: playwright.inspect('Playwright >> selector'). | validation | error | |
| Usage: playwright.selector(element). | validation | error | |
| Usage: playwright.locator(element). | validation | error | |
| Malformed attribute selector: ${selector} | validation | error | |
| Malformed test id selector: ${selector} | validation | error | |
| "${attr}" attribute is only supported for roles: ${roles.sli | validation | error | |
| "${attr.name}" must be one of ${values.map(v => JSON.stringi | validation | error | |
| "${attr.name}" does not support "${attr.op}" matcher | validation | error | |
| "level" attribute must be compared to a number | validation | error | |
| "name" attribute must have a value | validation | error | |
| "name" attribute must be a string or a regular expression | validation | error | |
| "description" attribute must have a value | validation | error | |
| "description" attribute must be a string or a regular expres | validation | error | |
| Unknown attribute "${attr.name}", must be one of ${kSupporte | validation | error | |
| Role must not be empty | validation | error | |
| Unknown selector engine "${name}" | validation | error | |
| "is" engine expects non-empty selector list | validation | error | |
| "has" engine expects non-empty selector list | exception | error | |
| "scope" engine expects no arguments | exception | error | |
| "not" engine expects non-empty selector list | exception | error | |
| "visible" engine expects no arguments | exception | error | |
| "text" engine expects a single string | exception | error | |
| "text-is" engine expects a single string | exception | error | |
| "text-matches" engine expects a regexp body and optional reg | exception | error | |
| "has-text" engine expects a single string | exception | error | |
| "${name}" engine expects a selector list and optional maximu | exception | error | |
| "nth-match" engine expects non-empty selector list and an in | exception | error | |
| "nth-match" engine expects a one-based index as the last arg | exception | error | |
| Target element must belong to the root's subtree | exception | error | |
| Database name is empty | exception | error | |
| Database version is unset | exception | error | |
| Unable to serialize IndexedDB: ${e.message} | exception | error | |
| Unable to restore IndexedDB: ${e.message} | exception | error | |
| Failed to execute 'send' on 'WebSocket': Still in CONNECTING | exception | error | |
| WebSocket is already in CLOSING or CLOSED state. | exception | error | |
| Failed to execute 'close' on 'WebSocket': The close code mus | exception | error | |
| Cannot send a message before connecting to the server | exception | error | |
| Can only connect to the server once | exception | error | |
| Empty "by" locator. Start with one of by.role(), by.text(), | exception | error | |
| Unknown C# language mode: ${mode} | exception | error | |
| Unknown Java language mode: ${mode} | exception | error | |
| Unsupported token "${unsupportedToken.toSource()}" while par | exception | error | css, selector, parsing, invalid-selector, user-input |
| Error while parsing css selector "${selector}". Did you mean | exception | error | css, selector, parsing, invalid-selector, pseudo-class |
| Invalid character: the input contains U+0000. | exception | error | css, tokenizer, escaping, invalid-character, user-input |
| Invalid input image | exception | error | image, screenshot, scaling, validation, dimensions |
| Invalid output dimensions | exception | error | image, scaling, validation, dimensions, nan |
| Conflicting exactness in internal:role selector: ${stringify | exception | error | locator, role, selector, exactness, serialization |
| Malformed selector: ${part.name}=${part.body} | exception | error | selector, nested-selector, parsing, invalid-selector |
| "${parts[0].name}" selector cannot be first | exception | error | selector, nested-selector, ordering, invalid-selector |
| "${part.body}" is only allowed as the first selector token, | exception | error | selector, frames, pierce, ordering, invalid-selector |
| Selector cannot start with entering frame, select the iframe | exception | error | selector, frames, iframe, ordering, invalid-selector |
| Selector cannot be empty when piercing frames, while parsing | exception | error | selector, frames, pierce, empty, invalid-selector |
| Selector cannot end with entering frame, while parsing selec | exception | error | selector, frames, iframe, empty, invalid-selector |
| Can not capture the selector before diving into the frame. O | exception | error | selector, frames, capture, invalid-selector |
| Can not *-capture inside a frame-piercing selector, while pa | exception | error | selector, frames, pierce, capture, invalid-selector |
| Only one of the selectors can capture using * modifier | exception | error | selector, capture, invalid-selector |
| Unexpected end of selector while parsing selector `${selecto | exception | error | selector, parsing, invalid-selector, user-input |
| Error while parsing selector `${selector}`: ${e.message} | exception | error | selector, parsing, regex, invalid-selector |
| Error while parsing selector `${selector}` - cannot use ${op | exception | error | selector, parsing, regex, invalid-selector |
| Error while parsing selector `${selector}` - cannot use ${op | exception | error | selector, parsing, invalid-selector, types |
| Error while parsing selector `${selector}` - selector cannot | exception | error | selector, parsing, validation, user-input |
| Cannot find .trace file | exception | error | trace, viewer, file-io, validation |
| The trace was created by a newer version of Playwright and i | exception | error | trace, viewer, version-mismatch, compatibility |
| Invalid glob pattern ${JSON.stringify(glob)}: nested '{' is | exception | error | glob, url-matching, parsing, validation |
| Invalid glob pattern ${JSON.stringify(glob)}: unmatched '}' | exception | error | glob, url-matching, parsing, validation |
| Invalid glob pattern ${JSON.stringify(glob)}: unmatched '{' | exception | error | glob, url-matching, parsing, validation |
| url parameter should be string, RegExp, URLPattern or functi | exception | error | url-matching, types, validation |
| fs is not available in the browser | exception | error | browser-bundle, node-stubs, fs, environment |
| path is not available in the browser | exception | error | browser-bundle, node-stubs, path, environment |
| No devices found | exception | error | android, adb, launch-server, environment |
| No device with serial number '${options.deviceSerialNumber}' | exception | error | android, adb, launch-server, validation |
| More than one device found. Please specify deviceSerialNumbe | exception | error | android, adb, launch-server, validation |
| Invalid viewport size format: use "width,height", for exampl | exception | error | cli, viewport, validation, user-input |
| Invalid geolocation format, should be "lat,long". For exampl | exception | error | cli, geolocation, validation, user-input |
| PDF creation is only working with Chromium | exception | error | cli, pdf, chromium, validation |
| Device descriptor not found: '${options.device}', available | exception | error | cli, device-descriptors, validation, user-input |
| Invalid color scheme, should be one of "light", "dark" | exception | error | cli, validation, browser-options |
| Only one of --no-shell and --only-shell can be specified | exception | error | cli, install, flag-conflict |
| Only one of --dry-run and --list can be specified | exception | error | cli, install, flag-conflict |
| Launching server is not supported | exception | error | android, launch-server, unsupported |
| Malformed endpoint. Did you use Android.launchServer method? | exception | error | android, connect, endpoint-validation |
| Timeout ${options.timeout}ms exceeded | exception | error | android, connect, timeout, network |
| Path is not available when connecting remotely. Use saveAs() | exception | error | artifact, remote, downloads, filesystem |
| Please use browser.newContext() | exception | error | browser-context, new-page, ownership |
| Route from har is not supported in thin clients | exception | error | har, routing, remote, thin-client |
| page: expected Page or Frame | exception | error | cdp, type-validation, browser-context |
| Browser is not supported on current platform | exception | error | executable-path, platform, install |
| Launching server is not supported | exception | error | launch-server, thin-client, unsupported |
| Connecting over CDP is only supported in Chromium and WebKit | exception | error | cdp, connect, browser-support |
| Passing a ConnectionTransport to connectOverCDP is not suppo | exception | error | cdp, connect, thin-client, transport |
| Connecting to workers is only supported in Chromium. | exception | error | worker, cdp, browser-support, internal |
| ${path}: expected channel ${names.toString()} | validation | error | protocol, validation, channel, type-validation |
| Cannot evaluate a string with arguments | exception | error | evaluation, script, validation |
| Either path or content property must be present | exception | error | evaluation, script, validation |
| Invalid date: ${time} | exception | error | clock, validation, date |
| Malformed endpoint. Did you use BrowserType.launchServer met | exception | error | network, connection, launchserver, configuration |
| Timeout ${params.timeout}ms exceeded | exception | error | network, timeout, connection |
| The object has been collected to prevent unbounded heap grow | exception | error | memory, lifecycle, element-handle, garbage-collection |
| Cannot find command to respond: ${id} | exception | error | protocol, internal, transport, race-condition |
| Cannot find object to "${method}": ${guid} | exception | error | protocol, race-condition, lifecycle, internal |
| Unknown new child: ${params.guid} | exception | error | protocol, race-condition, lifecycle, internal |
| Object with guid ${arg.guid} was not bound in the connection | exception | error | protocol, validation, version-mismatch, internal |
| ${path}: expected channel ${names.toString()} | validation | error | protocol, validation, type-mismatch, internal |
| Cannot find parent object ${parentGuid} to create ${guid} | exception | error | protocol, race-condition, lifecycle, internal |
| Missing type ${type} | exception | error | version-mismatch, protocol, internal |
| Cannot set input files to detached element | exception | error | element-handle, file-upload, lifecycle |
| Multiple directories are not supported | exception | error | file-upload, validation, input-files |
| File paths must be all files or a single directory | validation | error | file-upload, validation, input-files |
| File paths cannot be mixed with buffers | validation | error | file-upload, validation, input-files |
| Cannot set buffer larger than 50Mb, please write it to a fil | validation | error | file-upload, limits, input-files, memory |
| path: unsupported mime type "${mimeType}" | validation | error | screenshot, validation, mime-type |
| The value of "n" is out of range. It must be a non-negative | validation | error | event-emitter, validation, configuration |
| The "listener" argument must be of type Function. Received t | validation | error | event-emitter, validation, type-error |
| ${this._closeReason} | exception | error | lifecycle, fetch, api-request, closed |
| Unexpected 'data' type | validation | error | |
| Expected string for options.form["${name}"], found File. Ple | validation | error | |
| Unexpected buffer type of 'data.${name}' | validation | error | |
| Response has been disposed | exception | error | |
| options.visibility is not supported, did you mean options.st | validation | error | |
| options.waitFor is not supported, did you mean options.state | validation | error | |
| Dropping a directory is not supported — pass individual file | validation | error | |
| ${name}: expected one of (load|domcontentloaded|networkidle| | validation | error | |
| ${error} | exception | error | |
| Passing a function is not supported as an argument here | validation | error | |
| Too many arguments. If you need to pass more than 1 argument | validation | error | |
| Inner "has" locator must belong to the same frame. | validation | error | |
| Inner "hasNot" locator must belong to the same frame. | validation | error | |
| Could not resolve ${this._selector} to DOM Element | exception | error | |
| Locators must belong to the same frame. | validation | error | |
| Selecting the nth frame is not allowed while piercing frames | validation | error | |
| Selecting the nth frame is not allowed on the root frame loc | validation | error | |
| POST data is not a valid JSON object: ' + postData | validation | error | |
| Service Worker requests do not have an associated frame. | exception | error | |
| Frame for this navigation request is not available, because | exception | error | |
| Unable to fetch sizes for failed request | exception | error | |
| Route is already handled! | exception | error | |
| connectToServer must be called on the page-side WebSocketRou | validation | error | |
| Already connected to the server | exception | error | |
| Expected value of header "${key}" to be String, but "${typeo | validation | error | |
| Locator must belong to the main frame of this page | validation | error | |
| Route from har is not supported in thin clients | exception | error | |
| Passing functions requires the init script to be a function | exception | error | |
| Screencast is already started | exception | error | |
| selectors.register: "${name}" selector engine has been alrea | exception | error | |
| HAR recording has already been started | exception | error | |
| resourcesDir option is not compatible with a .zip har file | exception | error | |
| HAR recording has not been started | exception | error | |
| Cannot save zipped HAR in thin clients | exception | error | |
| Uncompressed har is not supported in thin clients | exception | error | |
| Cannot save trace in thin clients | exception | error | |
| Path is not available when connecting remotely. Use saveAs() | exception | error | |
| Video recording has not been started. | exception | error | |
| Unknown connect filter: ${connectFilter} | exception | error | |
| Please install Android driver apk using '${packageManagerCom | exception | error | |
| Device is closed | exception | error | |
| WebView has been closed | exception | error | |
| Could not push: ${code} | exception | error | |
| Device is closed | exception | error | |
| Pass { acceptDownloads: true } when you are creating your br | exception | error | |
| File already deleted. Save before deleting. | exception | error | |
| Invalid proxy server protocol: ${proxySettings.server} | exception | error | |
| Playwright manages remote debugging connection itself. | exception | error | |
| Arguments can not specify page to be opened | exception | error | |
| Unsupported Bidi Chromium channel: ${options.channel} | exception | error | |
| Element is not a node | exception | error | |
| Can't get remote object for nodeId | exception | error | |
| JSHandle is not a DOM node handle | exception | error | bidi, firefox, jshandle, internal |
| Cannot serialize result: object reference chain is too long. | exception | error | bidi, firefox, evaluate, serialization |
| Cannot launch Firefox with relative home directory. Did you | exception | critical | firefox, launch, environment, ci, docker |
| Arguments can not specify page to be opened | exception | error | firefox, launch, args |
| Unknown button: ${button} | exception | error | bidi, input, mouse, types |
| Method not implemented. | exception | warning | bidi, firefox, gc, not-supported |
| Not implemented | exception | warning | bidi, firefox, screenshot, not-supported |
| Unable to adopt element handle from a different document | exception | error | bidi, firefox, frames, element-handle |
| Frame has been detached. | exception | error | bidi, frames, detached, stale |
| Server is already started. | exception | error | browser-server, lifecycle, launch |
| Function "${name}" has been already registered | exception | error | browser-context, expose-binding, duplicate |
| Function "${name}" has been already registered in one of the | exception | error | browser-context, expose-binding, pages, duplicate |
| Page has been closed. | exception | error | browser-context, new-page, race, lifecycle |
| "deviceScaleFactor" option is not supported with null "viewp | validation | error | browser-context, viewport, config, validation |
| "isMobile" option is not supported with null "viewport" | validation | error | browser-context, viewport, config, validation, mobile |
| geolocation.longitude: precondition -180 <= LONGITUDE <= 180 | validation | error | geolocation, validation, config |
| geolocation.latitude: precondition -90 <= LATITUDE <= 90 fai | validation | error | geolocation, validation, config |
| geolocation.accuracy: precondition 0 <= ACCURACY failed. | validation | error | geolocation, validation, config |
| clientCertificates.origin is required | validation | error | client-certificates, validation, config, tls |
| None of cert, key, passphrase or pfx is specified | validation | error | client-certificates, tls, validation, browser-context |
| cert is specified without key | validation | error | client-certificates, tls, validation |
| key is specified without cert | validation | error | client-certificates, tls, validation |
| pfx is specified together with cert, key or passphrase | validation | error | client-certificates, tls, validation |
| Socks4 proxy protocol does not support authentication | validation | error | proxy, socks, network, validation |
| Browser does not support socks5 proxy authentication | validation | error | proxy, socks, network, validation |
| Unsupported ${this._name} channel "${options.channel}" | exception | error | launch, channel, browser-binary, chromium |
| Failed to launch the browser process.\nBrowser logs:\n${upda | exception | critical | launch, browser-binary, system-deps, ci |
| CDP connections are only supported by Chromium | exception | error | cdp, connect, chromium-only, browser-type |
| Connecting to SELENIUM_REMOTE_URL is only supported by Chrom | exception | error | selenium, launch, chromium-only, browser-type |
| Failed to launch ${this._name} because executable doesn't ex | exception | error | launch, executable-path, validation, browser-binary |
| Could not connect to ${channel}.\n${remoteDebuggingHint(chan | exception | error | cdp, connect, chromium, remote-debugging |
| Playwright manages remote debugging connection itself. | validation | error | launch, chromium, args, cdp |
| Arguments can not specify page to be opened | validation | error | launch, chromium, args |
| Connecting to ${channel} by channel name is not supported on | exception | error | cdp, connect, chromium, platform, channel |
| Could not connect to ${channel}: DevToolsActivePort file not | exception | error | cdp, connect, chromium, remote-debugging |
| Could not connect to ${channel}: invalid DevToolsActivePort | exception | error | cdp, connect, chromium, remote-debugging, corrupted-state |
| Unknown permission: ${permission} | exception | error | permissions, chromium, validation |
| This frame does not have a separate CDP session, it is a par | exception | warning | cdp, frames, chromium, session |
| page: expected Page or Frame | exception | error | cdp, chromium, type-error, browser |
| Session already detached. Most likely the page has been clos | exception | warning | cdp, session-lifecycle, cleanup, chromium |
| Root session cannot be closed | exception | error | cdp, session-lifecycle, chromium, internal |
| Cannot serialize result: object reference chain is too long. | exception | error | evaluate, serialization, cdp, chromium |
| Resulting promise was garbage collected. | exception | error | evaluate, promise, gc, chromium |
| Execution context was destroyed, most likely because of a na | exception | error | evaluate, navigation, race, chromium |
| Response body is unavailable | exception | error | network, route, response, chromium |
| Frame has been detached. | exception | error | frame, lifecycle, chromium |
| Cannot navigate to "${url}": this page is not available in a | exception | error | navigation, chromium, webui, persistent-context |
| Cannot set input files to detached input element | exception | error | input, lifecycle, dom, chromium |
| Unable to adopt element handle from a different document | exception | error | element-handle, cross-frame, dom, chromium |
| Invalid timezone ID: ${timezoneId} | exception | error | timezone, context-options, emulation, chromium |
| Clock only understands numbers, 'mm:ss' and 'hh:mm:ss' | exception | error | clock, validation |
| Invalid time ${str} | exception | error | clock, validation |
| Invalid date: ${epoch} | exception | error | clock, validation, date |
| Debugger is already paused | exception | warning | debugger, inspector, state |
| Debugger is not paused | exception | warning | debugger, inspector, state |
| Connecting to Android devices is not allowed. | exception | error | android, deny-launch, server, remote, protocol |
| No mapping for ${text[i]} found | exception | error | android, input, text, keymap, validation |
| Unknown key: ${params.key} | exception | error | android, input, key, keymap, validation |
| CDP session is only available in Chromium | exception | error | cdp, chromium, browser-type, validation |
| CDP session must be initiated with either Page or Frame, not | exception | error | cdp, validation, protocol, browser-type |
| CDP session is only available in Chromium | exception | error | cdp, chromium, browser, browser-type |
| Tracing is only available in Chromium | exception | error | tracing, chromium, browser, cdp |
| Launching more browsers is not allowed. | exception | error | deny-launch, server, browser-type, remote, launch |
| ${path}: no object with guid ${guid} | validation | error | protocol, validation, guid, lifecycle, use-after-close |
| ${path}: object with guid ${guid} has type ${dispatcher._typ | validation | error | protocol, validation, type-mismatch, guid |
| ${path}: expected guid for ${names.toString()} | validation | error | protocol, validation, wire-format, guid |
| ${path}: dispatcher with guid ${arg._guid} has type ${arg._t | validation | error | protocol, validation, internal, dispatcher, type-mismatch |
| ${path}: expected dispatcher ${names.toString()} | validation | error | protocol, validation, internal, dispatcher, wire-format |
| Target page, context or browser has been closed | exception | error | lifecycle, closed, race, protocol, target-closed |
| Launching more browsers is not allowed. | exception | error | electron, deny-launch, server, remote, launch |
| Route is already handled! | exception | error | network, routing, api-misuse |
| PDF generation is only supported for Headless Chromium | exception | error | pdf, chromium-only, browser-compat |
| Screencast is already running | exception | error | screencast, video, resource-conflict |
| Creating new API request contexts is not allowed. | exception | error | api-request, server-mode, permissions |
| Another client is already routing WebSockets | exception | error | websocket, routing, multi-client |
| Cannot write to a directory | exception | error | filesystem, save-as, protocol |
| Cannot close a directory | exception | error | filesystem, save-as, protocol |
| Element is not visible | exception | error | dom, actionability, force |
| Element is outside of the viewport | exception | error | dom, actionability, viewport, force |
| Did not find some options | exception | error | dom, select-option, actionability, force |
| Option being selected is not enabled | exception | error | dom, select-option, disabled, force |
| ${result.hitTargetDescription} intercepts pointer events | exception | error | dom, actionability, overlay, pointer-events, force |
| Element is not ${result.missingState} | exception | error | dom, actionability, state, force |
| Drop target did not accept the drop — its dragover handler d | exception | error | drag-and-drop, html5-dnd, dom |
| Cannot uncheck radio button. Radio buttons can only be unche | exception | error | form, radio, checkbox, api-misuse |
| Clicking the checkbox did not change its state | exception | error | form, checkbox, state, custom-widget |
| Element is not attached to the DOM | exception | error | dom, staleness, detached, element-handle |
| Download filename '${downloadFilename}' escapes download dir | exception | error | security, download, path-traversal |
| Electron executablePath not found! Please install it using ` | exception | error | electron, setup, dependency |
| Unable to open X display! ================================ M | exception | error | electron, linux, display, environment, xvfb |
| ${response.status} ${response.statusText}${responseText} | http | error | network, api-request, http-status |
| Failed after ${i + 1} attempt(s): ${e} | exception | error | network, retry, econnreset |
| Request context disposed. | exception | critical | lifecycle, api-request, context-disposed |
| localPaths are not allowed when the client is not local | validation | error | file-upload, remote, input-files |
| Exactly one of payloads, localPaths and streams must be prov | validation | error | file-upload, validation, input-files |
| Cannot transfer files larger than 50Mb to a browser not co-l | exception | error | file-upload, size-limit, remote |
| Invalid frame in aria-ref selector "${selector}" | exception | error | selector, aria-ref, frames |
| Frame locators are not allowed inside composite locators, wh | exception | error | selector, frame-locator, validation |
| Composite locators are not supported with piercing frames, w | exception | error | selector, pierce-frames, validation |
| nth can only be the last locator when piercing frames, while | exception | error | selector, pierce-frames, nth |
| Pierce-frame mode matched elements from multiple frames. | exception | error | selector, pierce-frames, frames, ambiguous |
| Frame does not yet have a main execution context | exception | warning | frames, execution-context, timing |
| Frame does not yet have the execution context | exception | warning | frames, execution-context, timing |
| "referer" is already specified as extra HTTP header | validation | error | navigation, referer, headers, validation |
| Navigation to "${url}" is interrupted by another navigation | exception | error | navigation, race, redirect |
| Frame was detached | exception | critical | frames, detached, lifecycle |
| options.visibility is not supported, did you mean options.st | validation | error | selector, api-migration, validation |
| options.waitFor is not supported, did you mean options.state | validation | error | selector, api-migration, validation |
| state: expected one of (attached|detached|visible|hidden) | validation | error | selector, validation, state |
| Failed to find element matching selector "${selector}" | exception | error | selector, element-not-found, eval |
| Unable to retrieve content because the page is navigating an | exception | error | navigation, content, frame, race-condition, dom |
| Provide an object with a `url`, `path` or `content` property | validation | error | addscripttag, validation, frame, script-injection |
| The page does not support tap. Use hasTouch context option t | validation | error | tap, touch, hastouch, context-options, frame |
| No element matching ${selector} | exception | error | selector, resolveselector, element-not-found, frame |
| Unable to generate locator for ${selector} | exception | error | resolveselector, selector-generation, locator, frame |
| At least one of "files" or "data" must be provided. | validation | error | drop, drag-and-drop, validation, frame, files |
| ${name}: expected one of (load|domcontentloaded|networkidle| | validation | error | lifecycle, waituntil, validation, navigation, frame |
| HAR entry _file escapes base directory: ${file} | exception | error | har, path-traversal, security, harbackend, routefromhar |
| Found redirect cycle for ${url} | exception | error | har, redirect, routefromhar, infinite-loop, harbackend |
| Unknown key: "${keyString}" | validation | error | keyboard, key, input, non-retriable, validation |
| Unknown modifier ${modifier} | validation | error | keyboard, modifier, input, validation |
| hasTouch must be enabled on the browser context before using | validation | error | touchscreen, touch, hastouch, context-options, input |
| JSHandle is disposed! | exception | error | jshandle, evaluate, disposed, javascript, lifecycle |
| JSHandles can be evaluated only in the context they were cre | exception | error | jshandle, evaluate, execution-context, javascript, cross-frame |
| Passed function is not well-serializable! | validation | error | evaluate, serialization, javascript, closure, function |
| HAR zip entry '${entry}' escapes output directory | exception | error | har, zip, path-traversal, security, harunzip, localutils |
| New URL must have same protocol as overridden URL | validation | error | route, continue, url-override, protocol, network |
| Response body is unavailable for redirect responses | exception | error | response, body, redirect, network, http |
| Function "${name}" has been already registered | validation | error | bindings, expose-function, page, duplicate-name |
| Function "${name}" has been already registered in the browse | validation | error | bindings, expose-function, browser-context, duplicate-name |
| "not" matcher requires expected result | validation | error | screenshot, tohavescreenshot, matcher, expect, baseline |
| The page has closed | exception | error | screenshot, tohavescreenshot, page-closed, race-condition, lifecycle |
| Cannot disconnect from this worker | exception | error | worker, disconnect, internal, lifecycle |
| Function "${name}" is not exposed | exception | error | bindings, expose-function, dispatch, lifecycle |
| serializedArgs is not an array. This can happen when Array.p | exception | error | bindings, json-serialization, prototype-pollution, page-context |
| Selector "${selector}" does not match any element | exception | error | aria-snapshot, selector, dom, locator |
| Pipe has been closed | exception | error | transport, pipe, browser-crash, lifecycle, protocol |
| Failed to parse response: ${text} | exception | error | recorder, chat, llm, json-parse, experimental |
| Failed to install windows dependencies! | exception | error | install, windows, dependencies, powershell, system |
| Failed to run 'apt-get install -s' to simulate dependency in | exception | error | install, linux, dependencies, apt, system |
| 'apt-get install -s' exited with code ${code}:\n${stderr || | exception | error | install, linux, dependencies, apt, system |
| Host system is missing dependencies!\n\n${details.join('\n') | exception | error | install, windows, dependencies, missing-libraries, system |
| Unsupported platform: ${process.platform} | exception | error | platform, unsupported, cache, registry, system |
| ${name} is not supported on ${hostPlatform} | exception | error | registry, executable, platform, unsupported, browsers |
| Executable doesn't exist at ${e} ${wrapInASCIIBox(prettyMess | exception | error | registry, executable, install, browsers, docker |
| webkit-wsl is only supported on Windows | exception | error | registry, webkit, wsl, platform, windows-only |
| WebKit via WSL is only supported on Windows | exception | error | registry, webkit, wsl, install, platform, windows-only |
| Failed to install WebKit via WSL | exception | error | registry, webkit, wsl, install, powershell, system |
| Chromium distribution '${name}' is not supported on ${proces | exception | error | chromium-channel, platform, launch, executable-path |
| Chromium distribution '${name}' is not found${location}${ins | exception | error | chromium-channel, browser-not-found, launch, executable-path |
| Firefox distribution '${name}' is not supported on ${process | exception | error | firefox, bidi, platform, executable-path |
| Cannot find Firefox installation for channel '${name}' at th | exception | error | firefox, bidi, browser-not-found, executable-path |
| ${err.message} Path: ${lockfilePath} | exception | error | install, lockfile, concurrency, registry |
| ERROR: Playwright does not support installing ${executable.n | exception | error | install, executable, registry, validation |
| An active lockfile is found at: ${lockfilePath} Either: | exception | error | install, lockfile, concurrency, registry, ci |
| ERROR: Playwright does not support ${descriptor.name} on ${h | exception | error | download, platform, architecture, registry, unsupported |
| Failed to download ${title}, caused by ${e.stack} | exception | error | download, network, timeout, registry, cdn |
| Cannot install ${channel} on ${process.platform} | exception | error | msedge, install, platform, network, edge-updates-api |
| Failed to install ${channel} | exception | error | chromium-channel, install, windows, powershell, exit-code |
| Invalid installation targets: ${faultyArguments.map(name => | exception | error | install, cli, validation, registry |
| Cannot install ${browserName} | exception | error | install, npm-postinstall, registry, browsers-json |
| No chromium-based browser found on the system. Please run th | exception | error | chromium, ui-mode, trace-viewer, launch-app, browser-not-found |
| Selector engine name may only contain [a-zA-Z0-9_] character | exception | error | selectors, registration, validation, custom-engine |
| "${engine.name}" is a predefined selector engine | exception | error | selectors, registration, builtin, collision, custom-engine |
| "${engine.name}" selector engine has been already registered | exception | error | selectors, registration, duplicate, custom-engine |
| Unknown engine "${name}" while parsing selector ${stringifyS | exception | error | selectors, parse, invalid-selector, custom-engine |
| ${path}: channels are not expected in SocksSupport | validation | error | protocol, socks, validation, internal |
| Cannot start tracing while stopping | exception | error | tracing, state-machine, concurrency |
| Tracing has been already started | exception | error | tracing, state-machine |
| Must start tracing before starting a new chunk | exception | error | tracing, state-machine, lifecycle |
| Cannot start a trace chunk while stopping | exception | error | tracing, state-machine, concurrency, await |
| Tracing is already stopping | exception | error | tracing, state-machine, concurrency |
| Must stop trace file before stopping tracing | exception | error | tracing, state-machine, lifecycle |
| Must start tracing before stopping | exception | error | tracing, state-machine, lifecycle |
| Trace file ${traceFileOrUrl} does not exist! | exception | error | trace-viewer, filesystem, cli |
| File must have .webm extension | exception | error | video, ffmpeg, validation, internal |
| Failed to launch webkit because executable doesn't exist at | exception | critical | webkit, wsl, launch, executable, windows |
| Arguments can not specify page to be opened | exception | error | webkit, launch, args, validation |
| SyncServer: failed to bind HTTP server | exception | error | webview, ios, network, loopback, internal |
| ios_webkit_debug_proxy ${proxyBase}/json returned ${res.stat | exception | error | webview, ios, safari, proxy, network |
| No Mobile Safari tabs found at ${this._proxyBase}/json — ope | exception | error | webview, ios, safari, setup |
| Not supported | exception | error | webview, ios, safari, capability, not-supported |
| Cannot set cookies without an open page | validation | error | webview, ios, cookies, capability |
| Method not implemented. | exception | error | webview, ios, capability, not-implemented, permissions, geolocation |
closed Target page, context or browser has been closed | exception | error | |
| Cannot serialize result: object reference chain is too long. | exception | error | |
| Cannot fulfill with redirect status: ${response.status} | validation | error | |
| Method not implemented. | exception | error | |
| Invalid dialog type: ${type} | exception | error | |
| Navigating subframes is not supported on stock WebKit RDP — | exception | error | |
| Invalid data URL: ${url.slice(0, 80)} | validation | error | |
| Method not implemented | exception | error | |
| Cannot take screenshot larger than 32767 pixels on any dimen | validation | error | |
| css screenshots are not implemented | exception | error | |
| Frame has been detached. | exception | error | webkit, webview, frames, detached |
| WebKit on Windows has a minimal viewport of 250x240. | validation | error | webkit, windows, viewport, headful, emulation |
closed Target page, context or browser has been closed | exception | error | webkit, connection, closed, protocol, lifecycle |
| Cannot serialize result: object reference chain is too long. | exception | error | webkit, evaluate, serialization, execution-context |
| Mouse wheel is not supported in mobile WebKit | exception | error | webkit, input, mouse, mobile, emulation |
| Cannot fulfill with redirect status: ${response.status} | validation | error | webkit, network, route, fulfill, redirect |
| Invalid timezone ID: ${contextOptions.timezoneId} | validation | error | webkit, timezone, emulation, context-options |
| Unknown target: ${targetId} | exception | error | webkit, protocol, targets, frames, race |
| Target page, context or browser has been closed | exception | error | webkit, navigation, lifecycle, closed |
| Cannot take screenshot larger than 32767 pixels on any dimen | validation | error | webkit, screenshot, cairo, linux, windows, device-scale-factor |
| Unable to adopt element handle from a different document | exception | error | webkit, element-handle, frames, cross-document |
| Frame has been detached. | exception | error | webkit, frames, detached, owner-element |
| Unknown permission: ${permission} | validation | error | webkit, permissions, context-options, emulation |
| Unsupported platform: ${process.platform} | exception | error | platform, registry, cache, environment |
| No open pages available. | exception | error | mcp, tools, tabs, lifecycle, backend |
| Tab ${index} not found | exception | error | mcp, tools, tabs, index, backend |
| Video recording has already been started. | exception | error | video, state-machine, mcp-tool, playwright-mcp |
| Access to "file:" protocol is blocked. Attempted URL: "${url | exception | error | security, navigation, file-protocol, config-gate |
| File access denied: ${resolvedFilename} is outside allowed r | exception | error | security, filesystem, sandbox, llm-origin, config-gate |
| Invalid location "${params.location}", expected format is <f | validation | error | devtools, debugger, input-validation, mcp-tool |
| No dialog visible | exception | error | dialog, modal-state, mcp-tool, synchronization |
| No file chooser visible | exception | error | file-chooser, modal-state, mcp-tool, synchronization |
| At least one of "paths" or "data" must be provided. | validation | error | drag-drop, input-validation, mcp-tool |
| fullPage cannot be used with element screenshots. | validation | error | screenshot, input-validation, mcp-tool, mutually-exclusive |
| Failed to load init page "${initPage}": ${reason} | exception | error | tab-init, config, init-script, cause-wrapped |
| "${param.target}" does not match any elements. | exception | error | locator, element-resolution, mcp-tool, snapshot |
| Ref ${param.target} not found in the current page snapshot. | exception | error | locator, element-resolution, snapshot, mcp-tool, stale-ref |
| Tab index is required | validation | error | tabs, input-validation, mcp-tool |
| Tracing is not started | exception | error | tracing, state-machine, mcp-tool |
| Either time, text or textGone must be provided | validation | error | wait, input-validation, mcp-tool |
| boolean option '--${key}' should not be passed with '=value' | validation | error | cli, args-parsing, input-validation |
| Could not start the session "${sessionName}" | exception | error | cli, session, daemon, state |
| Unsupported platform: ${process.platform} | exception | error | platform, environment, daemon, config |
| Client is v${clientInfo.version}, session '${this.name}' is | exception | error | session, versioning, daemon, cli |
| Browser '${this.name}' is not open. Run playwright-cli${t | exception | error | session, daemon, connection, cli |
| error: too many arguments: expected ${argNames.length}, rece | validation | error | cli, args-parsing, input-validation, command-schema |
| --data must be in "mime/type=value" format, got: ${entry} | validation | error | cli, input-validation, daemon, drop |
| Browser context was closed before the daemon could start | exception | critical | daemon, lifecycle, race-condition, browser-context |
| Unknown method: ${method} | exception | error | daemon, protocol, input-validation |
| Command is required | validation | error | cli, daemon, input-validation, command-parsing |
| Error: unable to connect to a browser that does not have any | exception | critical | cli, browser-context, remote, cdp, isolated-mode |
| Unknown stream: ${params.streamId} | exception | error | dashboard, stream, lifecycle, recording |
| No recording in progress | exception | error | dashboard, recording, lifecycle, state-management |
| Browser is already in use for ${userDataDir}, use --isolated | exception | error | browser-launch, persistent-profile, lock, isolated-mode, concurrency |
| Missing system dependencies required to run browser ${browse | exception | critical | browser-launch, linux, system-dependencies, shared-libraries, install |
| ${label} is not installed${location}. Run `${command}` to in | exception | critical | browser-launch, install, executable, ffmpeg, version-mismatch |
| Failed to create tab | exception | error | extension, tabs, browser-model, cdp-relay, create-target |
| No attached tab to forward browser-level command: ${method} | exception | error | extension, cdp, browser-model, tabs, attach |
| No tab found for sessionId: ${sessionId} | exception | error | extension, cdp, session, browser-model, routing |
| Extension not connected | exception | error | extension, cdp-relay, connection, websocket, ordering |
| Unsupported channel: "${this._browserChannel}" | exception | critical | extension, cdp-relay, channel, registry, browser-launch |
| "${this._browserChannel}" executable not found. Make sure it | exception | critical | extension, cdp-relay, executable, channel, install |
| Unexpected WebSocket state: ${this._ws.readyState} | exception | error | extension, websocket, cdp-relay, connection, state |
| --output-dir cannot point to a system directory: ${path.reso | validation | error | config, output-dir, validation, filesystem, safety |
| Browser userDataDir is not supported in isolated mode. | validation | error | config, isolated-mode, persistent-profile, validation, mutually-exclusive |
| Init script file does not exist: ${script} | validation | error | mcp, config, filesystem, init-script, validation |
| Init page file does not exist: ${page} | validation | error | mcp, config, filesystem, init-page, validation |
| Cannot use --mobile together with --device, pick one. | validation | error | mcp, config, cli, device-emulation, validation |
| --mobile is not supported with the Firefox browser. | validation | error | mcp, config, cli, device-emulation, firefox, validation |
| Device emulation is not supported with cdpEndpoint. | validation | error | mcp, config, cli, device-emulation, cdp, validation |
| Invalid resolution format: use ${name}="800x600" | validation | error | mcp, config, cli, parser, viewport, validation |
| Invalid ${name}: ${value}. Valid values are: ${options.join( | validation | error | mcp, config, cli, parser, enum, validation |
| Playwright Extension not found in "${userDataDir}". Install | exception | error | mcp, config, extension, browser, cdp, setup |
| Trace entry '${entry}' escapes output directory | exception | error | trace, zip, security, path-traversal, filesystem |
| Unknown command: ${args._[0]} | exception | error | trace, cli, snapshot, command, validation |
| No trace opened. Run 'npx playwright trace open <file>' firs | exception | error | trace, cli, workflow, state, validation |
| Trace file not found: ${filePath} | exception | error | trace, cli, filesystem, validation |
| Attachment name '${fileName}' escapes output directory | exception | error | trace, security, path-traversal, filesystem, validation |
| Skill source directory not found: ${sourceDir} | exception | error | skills, setup, package, filesystem, validation |