Can’t connect
Sign-in and scope errors
Workspace errors
These come back as tool errors after a successful sign-in. Each message names its fix.
To act in a different workspace, reconnect and choose it on the consent screen.
Permission refusals
Refusals use the app’s own wording and never reveal whether an artifact exists.
There is no share, grant, move, link, restore or delete tool, so none of these
can be worked around from an agent. See
Authentication and access.
Write conflicts
Each of these is a tool result withisError: true and an error code in
structuredContent.
Successful writes can also report an early stop:
stop_reason: "cap" (the
60,000-character budget; continue with another call) or anchor_gone (the
section was removed; do not re-add it). A script_stripped warning on a page
means its scripts are stored but will not run when viewed.
How errors come back
Three kinds, at three layers:Recoverable tool errors (isError: true)
Recoverable tool errors (isError: true)
Refusals, conflicts and unavailable exports are tool results, not protocol
errors. The text says what to do next; diagnostic structure rides in
Failures from below the tool (an access gate, a backend error) use the
form
structuredContent:Tool failed: <reason>, where <reason> contains the gate’s own
wording, for example Artifact not found.Invalid arguments
Invalid arguments
Arguments that violate a tool’s JSON schema (wrong type, unknown enum
value, missing required field) are rejected before the tool runs, as a
JSON-RPC
-32602 error.Checks a tool performs itself (expected_version missing on
replace_all, two selectors passed together) come back as
Tool failed: followed by the check’s message, such as
`section_excerpt` is required for replace_section.HTTP-level refusals
HTTP-level refusals
Hosts handle both by starting or re-running the OAuth flow.