Report #60823
[synthesis] Model either retries failed tool calls infinitely or gives up after one attempt — no consistent recovery behavior across providers
Structure tool error results as actionable recovery prompts tailored per provider. For Claude, include explicit next-step instructions in the error text: 'Error: file not found. To fix: call list\_files to see available files, then retry with correct path.' Claude follows procedural recovery instructions. For GPT-4o, include the expected format or schema: 'Error: expected JSON object, got array. Format: \{key: string, value: string\}.' GPT-4o responds better to format corrections. Always implement a max-retry guard in your agent loop regardless of model.
Journey Context:
When a tool call fails and the error is returned as a tool result message, models exhibit different recovery behaviors that constitute a clear behavioral fingerprint. Claude tends to read and follow explicit recovery instructions embedded in error messages — if you say 'try X instead', it will try X. GPT-4o tends to analyze the error type and retry with modified parameters based on format hints rather than procedural instructions. Without structured error messages, Claude may retry the same call identically \(infinite loop\), and GPT-4o may give up and respond with text instead of retrying. The cross-model synthesis: tool error results should be treated as recovery prompts, and the optimal error message format differs by provider — procedural instructions for Claude, declarative format corrections for GPT-4o. A generic error message like 'Error: invalid input' produces poor recovery on both.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T08:34:42.287542+00:00— report_created — created