This page is a complete reference to all order cancellation reasons.
UNSPECIFIED
UNSPECIFIEDNo more specific reason was applicable. Contact Bluefin for details.
INSUFFICIENT_MARGIN
INSUFFICIENT_MARGINThe 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
DUPLICATE_ORDERAn 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
POST_ONLY_WOULD_TRADEA 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
INVALID_SYMBOLThe 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
SIGNED_AT_TOO_OLDThe 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
ORDER_EXPIREDThe 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
INVALID_LEVERAGEThe 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
INVALID_INPUTOrder 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
PRICE_OUT_OF_BOUNDThe 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
QUANTITY_OUT_OF_BOUNDThe 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
PRICE_OUT_OF_TICK_SIZEThe 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
QUANTITY_OUT_OF_STEP_SIZEThe 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
REDUCE_ONLY_WOULD_OPENA 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
TOO_MANY_OPEN_ORDERS_ON_MARKETSubmitting 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
USER_CANCELLEDThe order was explicitly canceled by the user.
USER_CANCELLED_ALL_ON_MARKET
USER_CANCELLED_ALL_ON_MARKETThe order was canceled as part of a "cancel all orders" request by the user for a specific symbol.
SELF_TRADE_PREVENTION
SELF_TRADE_PREVENTIONThe 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
LEVERAGE_UPDATEThe 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
ACCOUNT_NOT_FOUNDThe order references an account that doesn't exist. Please contact Bluefin.
MARKET_NOT_TRADING
MARKET_NOT_TRADINGThe market is in a non-trading state; e.g., halted, pre-open, or closed.
INSUFFICIENT_LIQUIDITY
INSUFFICIENT_LIQUIDITYAn 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
POSITION_NOT_FOUNDThe order references a position that doesn't exist, or has already been closed by another order.
LIQUIDATION_OUT_OF_ORDER
LIQUIDATION_OUT_OF_ORDERLiquidation orders are being processed out of the expected sequence. Please contact Bluefin.
ACCOUNT_NOT_LIQUIDATABLE
ACCOUNT_NOT_LIQUIDATABLEA 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
ORDER_NOT_REDUCING_POSITIONA liquidation order would not reduce the position being liquidated.
USER_CANCELLED_ALL_STANDBY_ON_MARKET
USER_CANCELLED_ALL_STANDBY_ON_MARKETA 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
POSITION_EXCEEDS_MAX_OPEN_INTERESTThe 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
ACCOUNT_DEAUTHORIZEDThe 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
TOO_MANY_MATCHESA 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
MARGIN_CALLThe 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
INSUFFICIENT_BALANCEWhen 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_QUANTITY_OUT_OF_BOUNDTrade or remaining order quantity fell below the market's minimum trade size during matching. This occurs in two scenarios:
- Match produces small trade: A match would produce a trade smaller than the market's minimum trade size
- 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.
