Troubleshooting: agent eval-queue failures
Agent evaluation runs traverse a queued pipeline — you submit a run against a golden set or dataset, it sits inqueued until the eval worker picks it up,
moves to running, and settles on completed or failed. Errors surface at
three points: the publish gate (Agent Studio publish blocked), dataset
labeling (annotation write rejected), and run comparison (compare rejected).
When a run never moves past queued, that usually means the backlog is
blocked on one of the codes below.
The full list of error codes lives in the error-reference;
this page gives you the fix for each eval-related code.
How the agent-eval queue works
Voice-agent evaluation has two queue sources; both land in thevoice_eval_runs table and move through the same lifecycle
(queued → running → completed|failed):
- Manual runs — you POST
/agents/voice-eval/runswith a golden set or dataset. The run is queued; a worker drains it. - Continuous production sampling — an organization-wide policy
(
GET|PUT /agents/voice-eval/sampling-policy) samples a fixed percent (sample_percent, 0–100) of completed production calls into eval runs against a configured golden set. Runs are created automatically and drain through the same queue.
- Per-case concurrency — a run executes its cases (each a golden-set prompt
or dataset row) with a bounded parallelism of 5 at a time, so a run never
floods the LLM-judge or STT/TTS legs. Increasing
sample_percentincreases backlog depth without speeding up individual runs. - Rubric rubric load — a run scoring the
groundednessrubric issues the LLM-judge call for each case; the judge is the slowest leg and agroundedness-heavy golden set takes longer to drain than purecorrectness/helpfulnesssets.
items array at
queued means the drain is backlogged; a failure code on the settled run
(failed) means one of the errors below fired mid-run.
Decision table — eval error → fix
EVAL_COMPARE_DATASET_MISMATCH is the sibling of the last pair — the two runs
reference different datasets. Compare-only runs executed against the same
dataset.
Monitoring queue depth
Check two surfaces together:- Backlog and stuck runs:
GET /agents/voice-eval/sampling-policy)
and manual run submissions. Lower sample_percent or tighten the policy’s
agent_ids allowlist to reduce intake.
- Drain blockers: fetch a
failedrun to read why it failed:
cases array on a run detail carries per-case passed/failed verdicts
and failure_reason — read them against the table above to decide whether to
fix the agent, the dataset, or the golden set.
See also
- Error reference — Agent Eval section — the full error code list this page’s decision table maps.
- Continuous production evals — how the sampling policy works end to end.
- Agent evals: datasets → runs → triage → gate — the eval pipeline this queue drains.
- QA evaluations and the leaderboard — the scoring pipeline eval rubrics feed.
- Voice Agent Quality Index (VAQI) — the
latency/turn-taking metrics a
groundednessrubric judge may reference.