Skip to content

Error reference

Application failures set MCP isError: true and return bounded JSON text:

json
{
  "ok": false,
  "error": {
    "code": "PAGE_NOT_FOUND",
    "message": "The requested browser page was not found in the addressed session",
    "operationId": "…"
  }
}
CodeMeaning / next step
SESSION_NOT_FOUNDrediscover or create the session
SESSION_NOT_READYsession has not reached ready state
SESSION_CLOSINGstop submitting work to this session
SESSION_CLOSEDcreate a new session
PAGE_NOT_FOUNDverify both IDs and page ownership
INVALID_ARGUMENTcorrect the request schema/value
OPERATION_TIMEOUTinspect state, use a deterministic wait, or adjust bounded timeout
OPERATION_CANCELLEDcaller cancelled the request
NAVIGATION_FAILEDinspect safe reason/URL context and network conditions
ELEMENT_NOT_FOUNDrecapture state or correct the locator
LOCATOR_AMBIGUOUSmake the locator unique
STALE_ELEMENT_REFERENCEcapture a new snapshot/ref
STALE_SNAPSHOT_CURSORcapture a new snapshot
BROWSER_ERRORoperation failed; install Chromium if remediation says so
BROWSER_DISCONNECTEDexisting sessions cannot recover; restart and recreate them
LIMIT_EXCEEDEDreduce requested/captured data or revise configured budget
RUNTIME_SHUTTING_DOWNstop submitting work and reconnect later
SAVED_STATE_NOT_FOUNDlist states or use another ID
PERSISTENCE_DISABLEDenable persistence or omit state operations
INTERNAL_ERRORunexpected safe failure; gather bounded diagnostics

Browser failures may include only an allowlisted reason: timeout, dns, connection, tls, invalid_url, locator_ambiguous, element_not_found, or other. Public URLs exclude credentials, queries, and fragments. Raw Playwright messages, causes, stacks, tokens, and form values are not returned.

A failed operation does not poison the session queue. Do not automatically retry destructive actions unless the workflow can establish whether the action took effect.

Released under the Apache License 2.0.