Skip to content

Lost tool errors

Status: evidence-backed problem, not a universal framework ranking. Reviewed 2026-09-19 against local tests and published findings; see those pages for the exact dependency pins and measured configurations.

Symptom and mechanism

The same invalid call repeats, or a final answer silently ignores part of a batch.

A framework may reject before the tool body or omit a failed tool response. A tool-call list alone cannot prove the error reached the model.

Diagnose and reproduce

Inspect the next model request and independently record which sibling tools ran.

First use the tool failure and recovery lab to see how a structured error returns to the model and where retries do and do not belong.

From the repository root, with the relevant optional adapters installed:

python -m pytest tests/test_parallel_tool_calls.py -q

The test is the executable contract; published evidence explains scoped findings. Missing adapters may skip comparisons; inspect the test summary before generalizing.

Alternatives and tradeoffs

Deliver structured per-call results or fail the batch explicitly. Raising stops work; continuing needs every retained sibling correlated.

Verification and open question

Inject malformed arguments alongside a successful call. Verify both the error and successful result, not only final output.

Open question: does the same outcome hold for your actual provider, workload, configuration, and framework version? Existing scripted findings alone cannot answer that.

Implication for a new harness

One terminal response per accepted call and an explicit partial-batch policy.

Return to the problem register.