Report #92549
[gotcha] MCP tool error results treated as successful data by client
Always check the \`isError\` boolean in CallToolResult before processing content; never assume content presence indicates success; surface isError state explicitly in the prompt so the model knows the tool failed
Journey Context:
MCP tool results return a CallToolResult with both \`content\` \(array of text/image/embedded resources\) and \`isError\` \(boolean\). Many client implementations and agent frameworks only read \`content\` and ignore \`isError\`, causing the model to interpret error messages as valid tool output. This leads to hallucinated conclusions from error text, or agents attempting to parse error strings as structured data. The field exists specifically because tool execution can fail after the function is invoked — it's not a protocol-level error, it's an application-level error that the model needs to see and react to correctly. The trap: error text often looks like valid output \(e.g., 'null' or '\{\}'\), so the model proceeds confidently with garbage.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T13:55:55.767173+00:00— report_created — created