Refusals

Every way this system says no, what it means, and what to do about it. A refusal that a reader cannot interpret is an outage as far as they are concerned, so each one below is stated in the words the system actually uses.

The contracts

These are reverts: the transaction is rolled back and nothing is recorded. A revert is a decision, and retrying it buys the same decision at the price of gas.

Custom errors, by the contract that raises them
ErrorRaised whenWhat to do
BadSignatureThe recovered signer is not the owner the payload namesRe-sign with the owner key. A relayer cannot alter a payload without causing this
NonceUsedThat owner nonce has already been spentRead the next nonce and sign again. Registry and venue nonces are separate spaces
ExpiredThe deadline on the signature has passedSign again with a fresh deadline
AlreadyRegisteredA mandate with that digest existsNothing — the instrument is already in force
NotNarrower(field)A child mandate widens the named bound of its parentNarrow the field. A child may only restrict, and windowSeconds must be equal
TooDeepThe delegation chain is longer than the guard will walkDelegate from a shallower parent
UnknownMandateNo mandate with that digest is registered hereCheck the chain id and registry: a digest binds both
NotAuthoriserThe sender is not an authoriser the owner namedClause 4.2. The owner appoints by signature; no agent can become one
NotHeldThat action is not in a held stateA hold resolves once. Re-resolving is refused rather than recorded twice
RationaleRequiredA release carries no rationale hashRecord a reason. A decision without one is not a decision
VenueCallFailedThe target reverted, or returned nothingThe whole action rolls back: transfer, approval and window together
Slippage(got, wanted)Less came back than the agent's own floorThe agent set minAmountOut; the mandate does not bound price
BadClassA venue classification outside 0, 1, 2Unknown, primary or secondary

A held action is not in this table. It does not revert — it returns, records IntentRecorded and ActionHeld, and leaves the window untouched. A revert would roll back the events, and a hold that leaves no trace is not supervision.

The relayer

Refused before anything is spent, and written down rather than merely returned. All are HTTP 400 with a sentence.

MessageMeaning
that mandate was not signed by the owner it namesRecovery disagrees with the payload. The relayer will not pay to be told the same by the contract
only the owner names an authoriserAn appointment signed by anyone else
this relayer forwards approvals to the guard and to nothing elseA permit naming a different spender. The relayer is not a general-purpose signer
a mandate whose tokenIn equals its tokenOut would strand fundsRefused here because the contract accepts it and the funds would be stuck
that action is not heldA resolution for an action with nothing to resolve
recording a reason is not optionalA resolution with no rationale
this address already has a funded agentOne session per visitor. The service is not a faucet
the relayer is at its hourly ceiling across all visitorsA global cap, not a personal one. Try again shortly
the relayer is below its reserve and is not forwardingIt stops rather than stranding somebody halfway through a first mandate

The console API

StatusSaysMeaning
400mandate must be a 32-byte hex hashMalformed query
404no indexed incidentThe chain has actions the indexer has not swept yet, or there are none
404no assembled caseThe hold exists; no case file has been drafted for it
409no HoldResolved for action N in that transactionA decision the chain does not show. The server files nothing it cannot see
409the rationale does not hash to what was signed on chainThe text was changed after signing
503no preview chain is running hereThe simulated chain is down. Every other route is unaffected

The preview

Bounds are refused before any chain work, because an unauthenticated endpoint's only protection is what it will not accept: at most 24 actions, a notional and an aggregate within modelled range, a window between 60 and 86,400 seconds, venues that are primary or secondary, and no per-action cap above the aggregate cap — that last one cannot bind, so modelling it would be a quiet lie about which clause did the work.

The supervisory crew

The crew needs a model credential; the arithmetic, the striking gate and every figure on the pages around it do not. When a deployment has no credential, case assembly says so plainly and nothing else on the page is affected — a claim that cannot cite a resolvable record is struck before it renders, whether or not a model was available.