Cancellation Reasons

This page is a complete reference to all order cancellation reasons.

UNSPECIFIED

No more specific reason was applicable. Contact Bluefin for details.

INSUFFICIENT_MARGIN

The order's initial margin requirement exceeds the account's available margin. This specifically refers to the scenario where the order size/leverage combination requires more margin than is available—not margin calls or balance issues (which have their own distinct reasons).

Corrective Action: Reduce order size, lower leverage, close existing positions, or deposit additional funds.

Example: A trader with $1,000 available margin attempts to open a position requiring $1,500 margin.

Note: Previously, this reason was overloaded to cover margin calls and insufficient balance. Those scenarios now have dedicated reasons: MARGIN_CALL and INSUFFICIENT_BALANCE.

DUPLICATE_ORDER

An order with this identifier (client order ID or hash) has already been placed.

Corrective Action: Use a unique order identifier. If resubmitting a failed order, generate a new order ID.

POST_ONLY_WOULD_TRADE

A post-only order would have immediately matched, violating its post-only (that is, maker-only) constraint.

Corrective Action: Adjust your limit price to ensure it will rest on the book rather than immediately match. For buys, use a lower price; for sells, use a higher price.

Example: A trader submits a post-only buy at $100 but the best ask is $99. The order would immediately match, so it's rejected.

INVALID_SYMBOL

The order specifies a trading symbol/market that does not exist.

Corrective Action: Verify the symbol name is correct and the market exists. Check for typos in the symbol identifier.

SIGNED_AT_TOO_OLD

The signed_at timestamp on the order is beyond the acceptable age limit.

Corrective Action: Resubmit the order with a current signature. Ensure your system clock is synchronized.

ORDER_EXPIRED

The order expired, per its time-in-force settings. A Good-Till-Date (GTD) or other time-limited order reached its expiration time while on the order book. This is expected behavior for time-limited orders.

INVALID_LEVERAGE

The order specifies a leverage value outside the allowed range for the market.

Corrective Action: Check the market's allowed leverage range and adjust your order's leverage accordingly.

INVALID_INPUT

Order parameters conflict with each other or violate business rules

Corrective Action: Review order parameters for conflicts. Ensure order type, time-in-force, and other flags are compatible.

PRICE_OUT_OF_BOUND

The order price is outside the market's minimum/maximum price bounds, or slippage would cause it to exceed allowed Market Take Bounds (MTB).

Corrective Action: Adjust the order price to fall within the market's allowed price range. Check current market price and price band limits.

QUANTITY_OUT_OF_BOUND

The order quantity is outside the market's min/max quantity limits. This validation occurs at order submission time, before the order is matched against the book.

Corrective Action: Adjust the order quantity to fall within the market's allowed range. Check the market's minimum and maximum order size.

Note: Previously, this reason was overloaded to cover matching-time quantity failures. Those scenarios now have a dedicated reason: TRADE_QUANTITY_OUT_OF_BOUND.

PRICE_OUT_OF_TICK_SIZE

The order price is not a multiple of the market's minimum price increment (tick size).

Corrective Action: Round your price to the nearest valid tick. For example, if the tick size is 0.01, a price of 100.015 should be 100.01 or 100.02.

QUANTITY_OUT_OF_STEP_SIZE

The order quantity is not a multiple of the market's minimum quantity increment (step size).

Corrective Action: Round your quantity to the nearest valid step. For example, if the step size is 0.001, a quantity of 1.0005 should be 1.000 or 1.001.

REDUCE_ONLY_WOULD_OPEN

A reduce-only order would not reduce. One of the following is true:

  • The user has no open position in the specified market.
  • The user has a position, but this order would increase its size.
  • The user has a position, but this order is so big that it would flip the position onto the other side of the book.

Corrective Action: Adjust order quantity to not exceed your current position size. Verify your current position before submitting reduce-only orders.

Example: A trader with a 10 BTC long position submits a reduce-only sell for 15 BTC. This would close the long and open a 5 BTC short, violating reduce-only constraints.

TOO_MANY_OPEN_ORDERS_ON_MARKET

Submitting this order would exceed the maximum number of open orders allowed in this market.

Corrective Action: Cancel some existing orders in this market before submitting new ones.

USER_CANCELLED

The order was explicitly canceled by the user.

USER_CANCELLED_ALL_ON_MARKET

The order was canceled as part of a "cancel all orders" request by the user for a specific symbol.

SELF_TRADE_PREVENTION

The order was canceled to prevent self-trading (matching against your own order).

Corrective Action: Cancel your existing order on the opposite side before submitting the new order, or adjust price to avoid matching.

LEVERAGE_UPDATE

The account's leverage was modified, triggering cancellation of existing orders that would violate new margin requirements. Orders are automatically canceled when leverage is reduced.

Corrective Action: Resubmit orders after leverage change if desired.

ACCOUNT_NOT_FOUND

The order references an account that doesn't exist. Please contact Bluefin.

MARKET_NOT_TRADING

The market is in a non-trading state; e.g., halted, pre-open, or closed.

INSUFFICIENT_LIQUIDITY

An IOC or FOK order could not be filled (partially or fully) for lack of matching orders.

Corrective Action: Wait for more liquidity, reduce order size, or use a limit order that can rest on the book.

POSITION_NOT_FOUND

The order references a position that doesn't exist, or has already been closed by another order.

LIQUIDATION_OUT_OF_ORDER

Liquidation orders are being processed out of the expected sequence. Please contact Bluefin.

ACCOUNT_NOT_LIQUIDATABLE

A liquidation was attempted on an account that has sufficient margin or is otherwise not eligible for liquidation. This may indicate the account's margin recovered before liquidation completed.

ORDER_NOT_REDUCING_POSITION

A liquidation order would not reduce the position being liquidated.

USER_CANCELLED_ALL_STANDBY_ON_MARKET

A standby (conditional) order was canceled because the user submitted a request to cancel all such orders in a particular market.

POSITION_EXCEEDS_MAX_OPEN_INTEREST

The order would cause the account or position to exceed its maximum allowed notional value.

Corrective Action: Reduce order size to stay within position limits, or (for cross-margin orders) close existing positions to make room.

ACCOUNT_DEAUTHORIZED

The account's trading authorization has been revoked. It cannot trade, and orders will be rejected.

Corrective Action: Contact support to understand why your account was deauthorized and how to restore access.

TOO_MANY_MATCHES

A single taker order matched against an excessive number of maker orders, exceeding the match limit.

Corrective Action: Split the order into smaller pieces, or wait for larger resting orders to provide liquidity.

Example: A trader submits a market buy for 1000 BTC, but the order book has many small orders (0.1 BTC each). Matching against 10,000+ orders exceeds the limit.

MARGIN_CALL

The account's margin ratio has fallen below the maintenance margin requirement, triggering a margin call. Non-reducing orders are not allowed.

Corrective Action: Add margin to your account immediately to avoid further liquidations. Alternatively, manually close positions to reduce your margin requirement.

Example: A trader's position has moved against them, causing their margin ratio to drop below the maintenance level. Their open orders are canceled to prevent the position from growing larger.

INSUFFICIENT_BALANCE

When Returned: The account does not have enough deposited balance to cover the required operation. This is distinct from insufficient margin: Balance refers to actual deposited funds, while margin refers to available margin for trading.

Corrective Action: Deposit additional funds to your account.

Example: A trader places a taker order that matches the book, but their account does not have sufficient funds to cover the trade fee.

TRADE_QUANTITY_OUT_OF_BOUND

Trade or remaining order quantity fell below the market's minimum trade size during matching. This occurs in two scenarios:

  1. Match produces small trade: A match would produce a trade smaller than the market's minimum trade size
  2. Remaining quantity too small: A partially-filled maker order has remaining quantity below the minimum trade size

This is expected market behavior when order quantities don't align perfectly with minimum trade sizes.

Corrective Action: Use order quantities that are multiples of the minimum trade size. If you're a market maker, consider the minimum trade size when setting order quantities.

Example: A market has a minimum trade size of 0.01 BTC. A maker order for 0.035 BTC partially fills 0.03 BTC, leaving 0.005 BTC remaining. Since 0.005 < 0.01, the remainder cannot be traded and the order is canceled with this reason.

Note: This is distinct from QUANTITY_OUT_OF_BOUND, which catches invalid quantities at submission time. TRADE_QUANTITY_OUT_OF_BOUND occurs during the matching process.