HTTP status codes
Reason codes
When a request fails outright, theon_request_failed event (delivered to the consumer) carries a reason with exactly one of these codes:
timeout
No expert replied anywhere within
give_up_after (default 24 hours).no_expert_found
Routing found no expert for the request’s topic — no exact match, no fuzzy match, and no fallback.
expert_declined
The expert declined to answer.
rate_limited
Every candidate expert was at their rate-limit cap and the request could not be placed.
cancelled
The request was cancelled before it resolved.
error
An unexpected error prevented the request from being processed.
Request status vs. submit status
A request’s lifecycle status progresses throughqueued → asked → escalated → proposed → accepted | rejected | failed — read it from GET /requests/{id}.
Separately, the status returned at submit time by POST /requests reflects whether deduplication kicked in:
queued
A new request was accepted and routed.
deduped_open
The request matched an open request with the same
dedup_key; the consumer was attached as a subscriber. No new ask.deduped_resolved
The request matched an already-accepted request; the existing proposal is delivered immediately.
failed
The request could not be routed (see the reason codes above).