PreprintCurated
SilentProbe: Measuring Silent Failure in Production APIs Used as Agent Tools
Zongrong Li, Shengkun Ye, Feiyou Guo, Zuoyou Dang
29 August 2026
The failure has no error code
An agent calls a search API with a filter the endpoint does not support. The
endpoint does not reject it. It returns HTTP 200 and a plausible looking body
containing nothing, because an unrecognised filter is indistinguishable from a
filter that matched no rows.
Every retry policy, every circuit breaker and every try/except in the codebase
is aimed at a failure that announces itself. This one does not announce itself.
What the audit found
Across 721,320 parameters in 2,501 OpenAPI documents: 7.5% declare an
enumeration, 15.2% declare any machine-checkable constraint at all, and 40.1%
state at least one constraint in prose that the schema does not encode.
So the information needed to call most APIs correctly exists, is written down,
and is in the wrong place. It is in the description, where a model reads it as
prose, rather than in the schema, where a client can check it.
Then the live experiment. 219 schema-derived perturbations against endpoints
from 27 vendors: machine-checkable constraints produced an honest error in 111
of 111 cases. Prose-only constraints failed silently in 44 of 61. The authors
report p = 2e-13 and make the point that matters for anyone picking a vendor:
constraint form predicted honesty, vendor identity did not.
What the models did about it
Twelve models, eight families. A vocabulary the description merely exemplified
rather than enumerated was missed on 88 of 88 attempts. The same vocabulary
written out in full was used correctly 88 to 91% of the time.
In the full agent loop, models detected the resulting silent failure in 12% of
cases, repaired it in 0%, asserted a false negative to the user in 41%, and
invented a figure in 12%.
Zero repairs is the number to sit with. Detection is rare, and recovery never
happened once, because there is nothing in the loop to recover from. The model
was never told anything went wrong.
The fix is a schema edit, not a model upgrade
Promoting the vocabulary into the schema moved the failure from 88 of 88 to 0
of 89.
That is the practical takeaway and it inverts the usual instinct. The team
response to an agent getting an API wrong is normally to try a stronger model
or write a longer prompt. Here the entire failure was one line of schema, and
no amount of model quality would have found a constraint the schema never
stated.
What we take from it
When we wire an agent to a client's internal API, the first job is not the
prompt. It is reading the spec and moving every prose constraint into the
schema where it can be validated. Where we do not control the API, we add the
validation on our side of the call, because nobody upstream is going to do it,
and the agent will never notice on its own.
Ejentic did not author this paper. Credit belongs to the authors named above; the note is ours.