Skip to main content

Troubleshooting: Orby operator errors

A turn in the Orby panel returns an error envelope, the SSE stream ends in an error event, or a knowledge-base search comes back empty with an outage hint. Every one of those surfaces carries a stable ORBY_* code. This page maps each code to its cause and its fix. The full platform code list lives in the error reference; this page gives you the runbook for the Orby codes. A typical envelope looks like this — key on error.code, never on the message text. On a turn the same fields arrive as the terminal error SSE event, with code and message inside the data payload:

1. Session-token failures

Every tool Orby runs is dispensed against a short-lived session token minted at the start of the turn. When that token cannot be verified, the turn refuses work with one of five codes. In practice the dashboard mints and refreshes these tokens automatically, so you normally meet these codes only through the Orby API driven from your own client, or when a session was revoked underneath you. Sample envelope — a revoked session on POST /api/v1/orby/assistant:
Retry safety. None of the session codes is retriable with the same token — they all re-fail deterministically. The retry that works is always “new token, same message.”

2. Tool authorization

Three codes guard what a turn is allowed to do once the token has verified. They look similar but fire at different gates, and the fix differs. The distinction that matters: ORBY_TOOL_CLAIM_MISSING means the token’s shape is wrong (no allowlist at all — fail closed), while ORBY_TOOL_NOT_AUTHORIZED and ORBY_TOOL_FORBIDDEN mean the token is well-formed but this specific tool is outside its scope — the first at dispatch time, the second at approval-redemption time. Sample envelope — an out-of-scope tool at dispatch time:
Retry safety. Retry once with a fresh turn. All three codes are deterministic for a given token — re-sending the identical token re-hits the same gate.

3. Rate, cost, and turn limits

Sample SSE tail — a rate-limited turn:
Retry safety. ORBY_RATE_LIMITED, ORBY_TURN_FAILED (once), and ORBY_LLM_FAILED are the retriable set. ORBY_ITERATION_LIMIT re-fails on the identical prompt — change the request before retrying.

4. Knowledge-base readiness

Orby grounds “where do I configure X” answers in the indexed Orbit documentation corpus. Two codes cover that index. Retry safety. ORBY_KB_NOT_INDEXED_YET is transient — retry with backoff; nothing about your query needs to change.

5. Thread ownership

Sample envelope — cross-workspace thread id:
Retry safety. Ownership codes are deterministic — no retry helps; the fix is always a thread you own.

When to escalate

Escalate to support when:
  • ORBY_TOOL_CLAIM_MISSING recurs on fresh turns — the mint path is broken, not your request.
  • ORBY_TOOL_NOT_AUTHORIZED or ORBY_TOOL_FORBIDDEN keeps firing on the same well-scoped request after a fresh turn.
  • ORBY_SESSION_SIG_INVALID appears on tokens the dashboard minted itself (you never touched the token by hand).
  • ORBY_LLM_FAILED persists after the status page reports all operational.
  • ORBY_KB_NOT_INDEXED_YET lasts longer than a maintenance window.
Include the request_id from the meta block (or the error SSE event), the thread id when one exists, and the tool name for the ORBY_TOOL_* codes. The request id threads through the turn, tool-dispatch, and approval paths, so support can pull the executor-side trace without a back-and-forth.

See also