Error types
Zespan classifies errors into four categories:Changes on the error timeline
The stacked error chart shows the changes on your change timeline (a deploy reported from CI, a prompt version, a config or policy edit) as dashed markers on the bucket they happened in, so a jump in errors can be read against what changed just before it. The Changes button above the chart hides or shows them.How errors are classified
The Errors page, the error-rate alert metrics, and the performance error rates all use one rule. A call counts as an error when itsstatus is error or rate_limited, or when it has an error_code. The error code decides the type first, then the status:
- Timeout —
timeoutor408 - Rate limit —
rate_limited,rate_limit,rate_limit_exceeded, or429, or arate_limitedstatus with no code - Content filter —
content_filterorcontent_policy - Guardrail blocked —
guardrail_blocked - Tool error —
tool_error, any code starting withtool_(such astool_timeoutortool_http_503),validation_error(a tool’s arguments failed validation), or a tool span that failed with no code - Other — everything else
error_code are no longer dropped from the groups. They are grouped under the code unknown, or rate_limited when only the status said so, so group totals add up to the total error count. The error timeline has an other series for errors that fit none of the named types, so its series add up to total_errors too.
Rate limit and timeout are checked first, so rate_limit_exceeded is a rate limit and plain timeout stays a timeout, even on a tool span.
The rate-limit heatmap and the error rate by model use the same rule. The by-model table lists models with more than 10 calls in the period.
Errors by agent and tool
Errors are attributed to an agent per trace. An error on an LLM span that has no agent name of its own counts toward the most frequent named agent in the same trace, so the by-agent error counts match the error counts on the Agents list. Counts are distinct spans. On the API (GET /projects/{id}/errors, ranges 24h, 7d, 30d, 90d, each a trailing window):
Error list
When no span has ended with an error status in the last 90 days, the page says so and links to Traces instead of showing an empty list. On a shorter range with no errors, it offers a wider range instead.
- Error message (truncated to 200 characters)
- Error type
- Agent that produced the error
- Model (for model errors)
- Tool name (for tool errors)
- Timestamp and count (how many times this exact error occurred)

