Quote rejections
These come back asINVALID_ARGUMENT. The request needs to change before it will succeed.
Temporary conditions
These come back asUNAVAILABLE. The same request may succeed shortly after, so retry with backoff rather than surfacing a hard failure.
insufficient inventory is a size problem, not an outage. If your interface can suggest a smaller amount, that is a better response than an error.Auth and limits
Retry policy
GetQuote in a tight loop to force inventory to appear — it is rate limited and the answer will not change within a second.
Failures after the deposit
Once a deposit lands, nothing surfaces as an API error. Failure is expressed as order state instead: the order routes to a refund, or to one of the terminal failure states. Handle those in the tracking path, not in error handling. See Order lifecycle.Reverts on chain
Stale swap calldata is the most common one. Fetch instructions immediately before sending, not at quote time.