Skip to main content
A silent failure is a wrong outcome while every call reports success: an empty answer, an answer cut off at the length limit, an agent going round in circles. Nothing throws, so nothing shows in your logs. This page lists what Zespan looks for and what each check needs from your traces to run.

What Zespan looks for

Each finding says how sure Zespan is (see Findings → Tiers), and shows the evidence it rests on.

Check families

Findings on a trace are grouped into check families. These are the names you filter by on the Findings page:

What the checks need

  • Inputs must be recorded. Truncation, block and stream-cut detection read the finish outcome from a current SDK or OpenTelemetry mapping; empty-answer detection also works from captured answer text. See the finish outcome reference.
  • Trace checks read what was recorded. The answer, the conversation, the system instructions, the tool definitions and the tool results must have been captured in a form the check can read. A check that lacks an input reports that it could not run and names the input; it never passes. See Capture fields.
  • Windows, not single calls. Rate checks compare the last hour with the hour before and report a rise. One isolated bad call, or a rise concentrated in one or two stuck runs, is not flagged.
  • Intended fallbacks look like swallowed errors. A failed call followed by a fallback answer marks the trace failed whether the fallback was intended or not.
  • Retries inside a model client are not seen. Retry detection covers tool calls that report a retry count.
  • Repeated tool calls. The repeated-tool-call signal does not compare arguments, so the same tool called for different items can look like a loop. The loop check that compares arguments and results is the stronger one.
  • Evaluator drops need volume. An evaluator drop gets a named factor only with at least 30 evaluated samples in each window.

Next steps

  • Findings — the findings on a trace and the project’s Findings page
  • Finish outcome reference — the fields behind truncation, block, empty and stream-cut detection
  • Capture fields — what each check reads and why a check could not run
  • Alerts — alert on the rate of cut-off, blocked and empty answers
  • Traces — how each call ended