214 calls to find_customer returned empty with no error — 24% of 892 calls. The agent was told these succeeded.
When it fires
What it means
The tool ran, the protocol reported success, and the model got an empty array, an empty object or an empty string. Nothing anywhere reported a problem. See Empty results for exactly what counts. This is the quietest failure a server has. It never appears in an error rate, it never shows up in logs, and the only symptom the author sees is that people stop using the server.The three causes
The tool should have errored
The tool should have errored
An id that does not exist is not “no results” — it is a mistake the model can correct. Returning
[] tells it nothing. Returning isError: true with “no customer with id 4821” tells it exactly what happened, and it will search instead of retrying blindly.This is the most common cause and the highest-value fix.The arguments do not do what they appear to
The arguments do not do what they appear to
A filter that silently ANDs everything when the model expected OR. A date argument expecting
YYYY-MM-DD receiving a natural-language date and matching nothing. A case-sensitive match on a name.Look at the outcome breakdown: if bad_args is near zero and empty is high, the schema is accepting things it should be rejecting.Your description promises more than the tool covers
Your description promises more than the tool covers
“Search customers” that only searches by exact email will return nothing most of the time, and the model has no way to know why. Narrow the description or widen the tool.