> ## Documentation Index
> Fetch the complete documentation index at: https://shield.fi/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Error and rejection catalog

> Common assertion failures and the state to inspect.

Leo assertions do not carry the application error codes a production SDK might prefer. Client and support tooling should classify rejections from request context and current state.

## Authorization

* Caller is not the current admin.
* `accept_admin` caller does not match `pending_admin`.
* Position record is not owned by the signer.
* Confidential address does not match program, signer, domain, and factor.
* Claim caller or recipient does not match the stored confidential address.

## Pool creation

* Pool creation is closed and caller is not admin.
* Token is not allowed or is paused.
* Pair or global state is paused.
* Tokens are identical.
* Pool already exists.
* Fee or spacing is unregistered.
* Fee-to-spacing binding does not match.
* Initial tick is unaligned or outside the allowed domain.
* Initial square-root price does not lie in the tick interval.

## Mint and increase

* Pool is disabled or paused.
* Token IDs do not match canonical pool tokens.
* Signer, recipient, or withdrawal freezelist proof is invalid.
* Range is invalid or unaligned.
* Calculated liquidity is zero.
* Used amounts do not meet minimums.
* New boundary exceeds per-tick liquidity cap.
* Insertion hint is not the immediate initialized predecessor.
* Position token ID already exists.
* Position is frozen.

## Decrease, collect, and burn

* Position fields do not match the public mapping.
* Requested removal exceeds liquidity.
* Principal does not meet raw minimums.
* Requested collection exceeds total owed.
* Owner or withdrawal freezelist proof is invalid.
* Position is frozen.
* Burn sees nonzero liquidity or owed balances.

## Swap

* Deadline has passed.
* Global, token, pair, or pool control blocks trading.
* Token IDs do not match the pool.
* Price limit lies outside the domain or on the wrong side of current price.
* Amount is zero.
* Actual raw output is below `amount_out_min`.
* Swap ID already exists.
* Confidential address has already been used.
* Wide arithmetic cannot represent the result.

## Multi-hop

* Hop count is not two or three.
* Token chain between hops is discontinuous.
* Final route token does not match requested output.
* Any hop has invalid pause, limit, pool, or arithmetic state.

## Claim

* Pending output is absent, already claimed, or uses different fields.
* Any token or amount differs from stored `SwapOutput`.
* Signer freezelist proof is invalid.
* Token program rejects a public-to-private transfer.

## Operator response

Do not blindly retry a rejection. Refresh records, mappings, deadline, price, hints, and control state. Escalate repeated arithmetic, linked-list, or reconciliation failures as possible invariant incidents.
