VORQ Docs
Reference

Errors

The error envelope, the error types, the retry rule, and the codes routes return.

Envelope

{ "error": { "message": "expires_at must be in (now, now+86400]", "type": "invalid_request_error", "param": "expires_at", "code": null } }
FieldMeaning
messageHuman-readable. Do not parse it.
typeThe error class, below.
paramThe request field at fault, or null.
codeA machine-readable discriminator within type, or null. Branch on this.

Two routes answer some failures with a different body, documented on the route: POST /v1/jobs answers a changed price with a fresh quote, and POST /evm/ops answers a chain refusal with {"ok": false, "reason": …}.

Retrying

Retry on the x-vorq-retryable response header, never on type or status. true means the identical request may succeed later; false means it will not, and you must change the request (or stop).

Types

typeTypical statusRetryableMeaning
invalid_request_error400, 403, 409, 413noThe request is malformed, refused by policy, or refused by the chain.
authentication_error401, 403noMissing or invalid session, or a signature from the wrong wallet.
invalid_op_signature403noA provider op or ask snapshot does not recover to a registered provider.
not_found404, 410noNo such resource.
busy429yesMore than 8 requests are queued on one job or op subject. Retry shortly.
not_ready503yesThe index is catching up, or a joining escrow has no key yet.
chain_unreachable503yesThe RPC endpoint did not answer.
relay_unavailable503yesThe coordinator could not get its own transaction or chain read through. Nothing is wrong with the request.
pinner_unavailable503yesThe object store could not be reached, or no longer holds an object.
receipt_timeout504noThe transaction was broadcast but no receipt arrived within 60 seconds. code is the transaction hash. Poll the job or provider instead of re-sending.
internal_error500noUnexpected failure.

A 409 always means the chain refused, or would refuse, the transaction. Failing to reach the chain is never a 409.

relay_unavailable codes

codeCause
relayer_fundsThe relayer account is out of ETH. An operator must top it up.
nonce_conflictThe relayer's transaction lost a nonce race.
rpc_internal, rate_limitedThe RPC endpoint answered -32603 or -32005.
endpoint_refusedThe RPC endpoint refused the transaction for another reason.
relay_queue_full, relay_queue_timeoutToo many relays are queued on the relayer account (RELAY_MAX_DEPTH), or one waited longer than RELAY_QUEUE_TIMEOUT_MS.
config_read, payer_code_read, provider_id_read, registry_floor_read, claim_simulate_read, job_read, allowlist_status_readA named chain read failed.
publication_skippedAn ask snapshot was mined but the chain recorded no publication.

pinner_unavailable codes

codeCause
store_unavailableThe object store did not answer.
store_rejectedThe object store refused the request.
object_missingThe object behind a file is no longer stored.

Common request codes

StatuscodeWhereCause
400nullanyA malformed field; param names it.
401invalid_sessionsession routesMissing, malformed or expired session token.
413body_too_largeany JSON routeThe body is over the route's limit. Upload the payload instead.
413file_too_largePOST /v1/filesThe file is over MAX_BLOB_BYTES.
404nullanyUnknown route, job, provider, file or batch.

Route-specific codes are listed with each route in the client, provider, auth and escrow references.

On this page