Vordium LabsDocs

Errors and refusal codes

Every status a write can answer, the order refusal codes, the agent refusal codes and the deposit outcomes — key your program on the code.

A refusal always carries a machine-readable code. The text beside it is for people and may change; the code does not.

Statuses

StatusMeaning
202received ("status": "submitted"); read the state back to see it applied
400refused: the body is malformed, or the operation breaks a rule (code says which)
401, 403the signature does not recover an allowed signer, or the signer is not allowed this operation
404no such pair, order, agent or route
409the nonce was used already, or an earlier operation is still pending
429too many requests or the intake is full; wait for Retry-After and send again
5xxthe node could not answer; try again

A refused order answers:

JSON
{"success": false, "status": "refused", "code": "price_band", "meaning": "…", "error": "…"}

In a batch, each action answers on its own: accepted, refused or will_be_refused, with its code.

Order refusals

CodeWhy
min_notionalthe order is worth less than the smallest order value (limits)
max_notionalthe order is worth more than the largest single order allowed
no_pricethe market has no committed price yet, so a market order cannot be valued
slippagethe price has already moved past the cap the order was signed with
price_banda limit price too far through the mark on the side that would trade at once
tickthe price is not a multiple of the market's price step
lotthe size is not a multiple of the market's size step
leveragethe leverage is zero or above the market's maximum
too_many_open_ordersthe account already has the most open orders allowed
oi_capthe order would take the market past its open-interest cap (closing orders are never refused)
rate_limitedthe account's request allowance is used up (cancels are always allowed)
rate_bursttoo many orders from one address in one block
agent_refusedthe agent that signed it may not place it — see reason and the agent refusals
not_activethis kind of order is not active on this network

Write refusals

CodeWhy
invalid_bodya field is missing or malformed
batch_sizea batch has no action or more than the most allowed
bad_signaturethe signature does not recover an allowed signer
unknown_orderthe order to cancel or modify does not exist
insufficient_balancethe free balance does not cover the order's margin
mempool_fullthe intake is full; send again

Agent refusals

An order signed by an agent and refused by its policy answers 403 with "code": "agent_refused" and one of these reasons; the refusal is also recorded under GET /events/agent/{agent}. The meanings are the network's own, read from its spec:

ReasonMeaning (as the network publishes it)
registration_not_liveThe agent's registration is revoked or expired.
policy_expiredThe agent's policy has expired.
policy_disabledThe owner disabled the agent's policy.
no_policyThe agent has no policy, so every action is refused.
agents_pausedAll agents are paused on this network.
agent_mode_offThe agent's trading mode is off.
capability_not_grantedThe policy does not allow this kind of action.
market_not_allowedThe policy does not allow this market.
outside_active_windowOutside the policy's active hours (UTC).
rate_limitThe agent used all actions allowed in its window.
locked_reduce_onlyThe agent is locked to reduce-only (a limit was reached).
reduce_only_or_sideOnly reducing orders, or only the policy's side, are allowed.
max_orderThe order is larger than the policy allows.
max_positionThe position would exceed the policy's maximum.
max_total_exposureThe agent's total exposure would exceed the policy's maximum.
max_leverageThe leverage is above the policy's maximum.
daily_loss_limitThe agent's daily loss limit is reached.
daily_fee_capThe agent's daily fee cap is reached.
price_outside_bandThe price is outside the policy's band around the oracle price.
oracle_unavailableThe market's oracle price is missing, stale or its breaker is tripped.
not_agents_orderThe order or TWAP was not placed by this agent.
otherAnother agent check refused the action.

Deposit outcomes

GET /bridge/v4/deposits/{address} gives each deposit a status — pending, credited, waiting or not accepted — and, when it is not credited, a reason:

ReasonWhat it means
waitingdeposits are closed or at a limit; it is credited when they reopen, from the same transfer
below_minimumsmaller than the smallest deposit; it is owed back to the address that sent it
above_per_deposit_limitlarger than one deposit may be; owed back
not_completedthe deposit call failed; owed back
strandedthe transfer could not be read; it is owed to no one until it is recovered
rescuedrecovered; the amount is owed to the address named in claim
otherreturned; claim it on Arbitrum by the address it was returned to

An amount owed back is claimed on Arbitrum by the address it is owed to.

JSON-RPC

The EVM lane's error codes are on the JSON-RPC page.

Network facts last checked against the network 2026-10-22 13:00:37 UTC · mainnet spec v28 · testnet spec v8

On this page