Skip to main content
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. Fix: reduce size, raise leverage, or deposit more collateral. Check Margin Required in the 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.

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. 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.

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.

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.

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.

Still unexplained

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

Where to go next

The order ticket

Reading Margin Required before you submit.

Order types

Post-only, IOC, and what each guarantees.

Precision

Tick and lot sizes.

Why didn't my order fill

Accepted, but never executed.