{ "error": "..." }. A schema failure is { "error": "invalid request", "issues": [ ... ] }. An unexpected failure is { "error": "internal error" } with status 500.
The ticket is not included in the error body.
Status codes
Messages you can match on include
API key required, invalid API key, sign in required, pack not found, pack has no published version, evaluation not found, invalid signature, and missing permission {resource}:{action}.
Stored as review
These are successful HTTP responses. The evaluation exists.result.status is review and reviewReasons contains the kind:
gateway_auth, gateway_unavailable, invalid_model_output, invalid_pack, invalid_ticket.
Retry a gateway failure with the same Idempotency-Key. The key was not stored, so the call runs again. Other idempotent replays return the original evaluation.
Inbound versus judge
POST /api/judge waits for the judgment and returns 200.
POST /api/webhooks/inbound returns 202 with { eventId } and judges after the response. A later failure shows up on the completion, or on the evaluation, not on the 202.