Search

Search benchmark pages, protocols, published runs and the docs

Rout

Errors

Every refusal the API returns, what it means and what a client should do.

Errors come back as { "error": "…", "error_code": "…" }. The message names the field it is about. On enable, MALFORMED_DEFINITION, UNKNOWN_KIND, UNBUILDABLE, DEFINITION_NOT_YOURS and NO_KEYS mean the agent was set back to disabled.

sniper-definition.schema.json 38b473b8…db1bfb59errors.md 9467f423…bf7b83fbREADME.md cd497d83…cdd114de
CodeHTTPMeaningWhat to do
MALFORMED_DEFINITION400not a JSON object; does not parse; NoTip; NoNonce; NoLimitsa form bug. Show error
UNBUILDABLE400parses, but a refusal from the tables aboveshow error beside the field its path names
UNKNOWN_KIND400kind is not one GET /agents/kinds listsuse a kind from that list (today sniper)
DEFINITION_NOT_YOURS400definition.user_id is not the caller'sleave user_id out, or send your own
NO_KEYS409the signer refused a wallet: unknown, not yours, frozen, or no signing policy. Rolled back to disabledsend the user to the wallet's settings. error has the signer's words
ALREADY_RUNNING409not returned by enable (that is success)—
NOT_RUNNING409GET /status of an agent that is not running hereshow "not running" rather than an error
AGENT_ENABLED409edit or delete while enabledoffer "stop it first"
TOO_MANY_AGENTS409a user may hold at most {limit} snipers—
NOT_FOUND404no such agent, or not yours (the same answer on purpose)—
UNAUTHENTICATED401no, malformed, expired or revoked token; failed loginsign in again
LOGIN_REFUSED400the challenge was refused (unknown platform, bad address)—
RUNTIME_UNREACHABLE503the runtime could not be asked to check, so nothing was writtenretry
ENABLED_NOT_RUNNING202not an error. The row is enabled, but the runtime failed transiently (failed, "being retried in the background") or could not be reached. It keeps trying, and also starts it at its next enrolmentshow "starting…" and poll GET /agents/{id}/status. Disabling calls it off
UPSTREAM_ERROR502the runtime's or a service's own trouble (failed), or an enable whose rollback failed ("…could not be set back to disabled; disable it")retry; on the rollback message, tell the user to disable
INTERNAL_ERROR500—report with requestId
RATE_LIMITED429more than the per-IP limit (300/min by default)back off