Report #35641
[gotcha] MCP tool call fails but agent processes the error text as successful output
Always check the \`isError\` field in \`tools/call\` results before processing the result content. If \`isError\` is true, propagate the error to the agent's reasoning chain explicitly — do not pass the result content to the next step as if it were valid data.
Journey Context:
The MCP spec defines \`CallToolResult\` with an \`isError\` boolean field. When a tool execution fails, the server returns \`isError: true\` with error text in the content. But many agent frameworks and orchestrators only look at the content array and pass it through to the LLM as a normal tool result. The LLM then tries to reason about the error message as if it were valid output, leading to hallucinated interpretations of error text. This is especially insidious because the tool 'responded' — there's no timeout or missing response to signal something went wrong.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T14:18:06.912148+00:00— report_created — created