Skip to content
All docs

Failure modes

How each failure surfaces to the user, and what the system does.

FailureDetected byUser seesSystem does
Order breaks a desk rulefrontend check, then the desk contract"Order blocked by desk policy" with the rule and numbers; "Nothing was sent to Perpl"contract reverts with a named error if sent anyway
Equity would end below the floordesk post-fill checkFloorBreach with equity and floorwhole transaction reverts; no position remains
Mark stale (> 60 s)Perpl markPriceValid"Mark price is stale" pill; new risk blockedreduce-only allowed; enforce waits
Fee cap reacheddesk"Credit-fee cap reached"new risk refused; anyone can enforce
Pool cap reachedpool / desk pre-check"Pool exposure cap reached ... Nothing was sent to Perpl"revert before execOrder
IOC finds no liquidityPerpltrade shows "no fill" in historyno position, no error
FOK cannot fillPerpl"Not enough liquidity"atomic revert
Adding to an underwater positionPerpl negPnl stamp"Perpl refused the fill"atomic revert
Position gapped past bankruptcyenforcedesk shows Enforcing; history shows EnforceCloseFailedstays Enforcing, pays nothing; settles after venue liquidation/ADL
Venue haltedPerpltrade fails with the venue errorenforce records state, retries later
Withdraw rate-limitedPerplclaim/close fails with a named errorenforce emits SettlementPending; retry
Transaction revertedreceipt"Failed" with the decoded contract error and blockreceipt kept in My receipts
Second RPC disagreesverification readback"Verification failed" with expected vs observednever shown as success
Second RPC unavailablerunner"Waiting on an external dependency"no success state
Passkey has no PRFMeraPRF_UNAVAILABLE with browser guidanceno fallback account
User cancels passkeyMera"Request cancelled. Nothing was sent."none
Perpl API downproxy"Chart data unavailable" / "Market data unavailable"no placeholder data drawn
Indexer downhistory"Source: bounded RPC scan (indexer unavailable)"falls back to bounded getLogs
Contracts not deployedconfig"Imprest contracts are not deployed on TESTNET yet: PENDING"desk actions disabled
Relayer quota hitrelayer429 "self-submit or retry in a minute"nothing sent
Relayer simulation revertsrelayernamed contract errornothing sent (no gas spent)
Keeper action not acceptedkeeper simulation(operator logs) not_sent with the contract errornothing sent