Harnix
Integrate

Errors

The {code, message} error shape and every public error code.

Every 4xx/5xx from the public endpoints (/v2/token, /v2/agents, /v2/conversations, /v2/chat, /v2/runs) has the same shape:

{ "code": "invalid_token", "message": "Authentication failed" }

Program against code (machine-readable), not message (human-readable — it can change). Some errors add scope (e.g. budget_exceeded, queue_full) or retry_after (e.g. rate_limited, queue_full).

Error codes

CodeHTTPMeaning
invalid_token401The token is missing or invalid.
token_expired401The token has expired — exchange a new one.
invalid_publishable_key401The publishable key doesn't exist or was revoked.
origin_not_allowed403The calling page's origin isn't on the allowed-origins list.
invalid_user_hash401The user-hash signature doesn't match the identity secret.
user_hash_expired401expires-at has passed — sign a new ticket.
org_suspended403The organization is suspended.
end_user_blocked403This end-user has been blocked.
agent_not_found404The agent doesn't exist.
agent_inactive409The agent is deactivated.
conversation_not_found404The conversation doesn't exist.
run_not_found404The run doesn't exist.
run_not_cancellable409The run has already finished and can't be cancelled.
approval_pending409This conversation has an action awaiting confirmation — approve or decline it before sending a new message.
run_not_waiting409This run is not waiting for a decision (already decided, finished, or never paused).
rate_limited429Too many requests — see retry_after.
budget_exceeded429The daily token budget is used up — see scope.
queue_full429The assistant is busy — retry after retry_after seconds; see scope (org or deployment).
validation_error422The request body is invalid.
redis_unavailable503Live streaming is temporarily unavailable — retry.
internal_error500An error on Harnix's side — retry, or contact support if it persists.

This is a closed list — no other code appears on the public endpoints.

On this page