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

# Order rejected

> Why an order never reached the book — the common rejection reasons, and the fix for each.

A rejected order did not execute, did not rest, and cost you nothing. The protocol checks every order before it reaches the book, and a rejection tells you which check it failed.

Work down this list in order — the first three cover most rejections.

## Insufficient margin

**The most common rejection.** Your available collateral does not cover the initial margin for the order, plus the reserved fee to close the resulting position later.

Note the second part: the requirement is slightly more than size ÷ leverage, because the protocol reserves an allowance for the closing fee at the time you open. An order sized to exactly your available balance will be rejected for this reason. See [Trading fees](/programs/fees#why-your-reserved-margin-exceeds-the-initial-requirement).

**Fix:** reduce size, raise leverage, or deposit more collateral. Check `Margin Required` in the [ticket](/help/order-ticket) before submitting — it shows the number the check will use.

## Post-only would have crossed

You used `ALO` (post-only) and the order would have taken liquidity instead of adding it. Post-only is rejected rather than filled in that case — that is the entire point of it.

**Fix:** move your price so it does not cross, or switch to `GTC` if you are willing to pay the taker rate.

## Reduce-only would not reduce

You marked the order reduce-only and it would not shrink a position — either you have no position, or it is on the other side.

**Fix:** check the Positions tab. Reduce-only is doing its job here; it is stopping an order that would have opened exposure you did not intend. See [Reduce-only](/trading/reduce-only).

## Self-trade prevention

The order would have matched against your own resting order. The protocol prevents that rather than letting you trade with yourself.

Which side gets cancelled depends on the mode set on the order — expire the taker, the maker, or both. See [Self-trade prevention](/trading/self-trade-prevention).

**Fix:** cancel your resting order on the other side first, or choose a different mode.

## Price outside the band

Orders too far from the reference price are rejected, whether resting or executing. The band stops fat-finger orders and stops a thin book being walked to an absurd price.

**Fix:** price closer to the market. If you are trying to rest a far-away order, the band is the limit on how far.

## Size or price precision

Every market has a **tick size** (the price increment) and a **lot size** (the quantity increment). A price or size that does not land on a valid increment is rejected rather than rounded — rounding would mean executing something you did not ask for.

There are also minimum and maximum order sizes per market.

**Fix:** round to the market's increments. Read them from the contract specification rather than assuming — see [Precision](/trading/precision).

## Position limit

The order would push your position past this market's concentration cap, which limits how much of the open interest a single account can hold.

**Fix:** reduce size. See [Position limits](/trading/oi-limits).

## Market is not accepting that order

Markets carry a status that determines what the book will take. A market in `ReduceOnly` accepts only closing orders; `PostOnly` rejects every taker order; `Paused` and `PreOpen` accept nothing from ordinary accounts.

**Fix:** this is the market telling you what it is currently accepting, not a fault in your order. See [Listings](/programs/listings#the-states-a-market-can-be-in).

## Rate limited

Too many requests too quickly. Applies to automated trading far more often than manual.

**Fix:** back off and retry. If you are building an integration, see [Developers](/developers/overview).

## Still unexplained

If none of the above fits, send it to `contact@intention.xyz` with:

|                                     |                                |
| ----------------------------------- | ------------------------------ |
| **The exact rejection message**     | Verbatim, not paraphrased      |
| **Market, side, type, size, price** | The order as you configured it |
| **UTC timestamp**                   | To the second                  |
| **Client order ID**                 | If you set one                 |
| **Your available balance**          | At the moment of the attempt   |

## Where to go next

<CardGroup cols={2}>
  <Card title="The order ticket" href="/help/order-ticket">
    Reading Margin Required before you submit.
  </Card>

  <Card title="Order types" href="/trading/order-types">
    Post-only, IOC, and what each guarantees.
  </Card>

  <Card title="Precision" href="/trading/precision">
    Tick and lot sizes.
  </Card>

  <Card title="Why didn't my order fill" href="/help/fill-or-pnl-question">
    Accepted, but never executed.
  </Card>
</CardGroup>
