Last Updated: (2024-10-17)
Errors consist of two parts: an error code and a message. Codes are universal, but messages can vary. Here is the error JSON payload:
{
"code":-1121,
"msg":"Invalid symbol."
}
- An unknown error occurred while processing the request.
- Internal error; unable to process your request. Please try again.
- You are not authorized to execute this request.
- Too many requests queued.
- Too much request weight used; current limit is %s request weight per %s. Please use WebSocket Streams for live updates to avoid polling the API.
- Way too much request weight used; IP banned until %s. Please use WebSocket Streams for live updates to avoid bans.
- An unexpected response was received from the message bus. Execution status unknown.
- Timeout waiting for response from backend server. Send status unknown; execution status unknown.
- Server is currently overloaded with other requests. Please try again in a few minutes.
- The request is rejected by the API. (i.e. The request didn't reach the Matching Engine.)
- Potential error messages can be found in Filter Failures or Failures during order placement.
- Unsupported order combination.
- Too many new orders.
- Too many new orders; current limit is %s orders per %s.
- This service is no longer available.
- This operation is not supported.
- Timestamp for this request is outside of the recvWindow.
- Timestamp for this request was 1000ms ahead of the server's time.
- Signature for this request is not valid.
- Illegal characters found in a parameter.
- Illegal characters found in parameter '%s'; legal range is '%s'.
- Too many parameters sent for this endpoint.
- Too many parameters; expected '%s' and received '%s'.
- Duplicate values for a parameter detected.
- A mandatory parameter was not sent, was empty/null, or malformed.
- Mandatory parameter '%s' was not sent, was empty/null, or malformed.
- Param '%s' or '%s' must be sent, but both were empty/null!
- An unknown parameter was sent.
- Not all sent parameters were read.
- Not all sent parameters were read; read '%s' parameter(s) but was sent '%s'.
- A parameter was empty.
- Parameter '%s' was empty.
- A parameter was sent when not required.
- Parameter '%s' sent when not required.
- Parameter '%s' overflowed.
- Parameter '%s' has too much precision.
- No orders on book for symbol.
- TimeInForce parameter sent when not required.
- Invalid timeInForce.
- Invalid orderType.
- Invalid side.
- New client order ID was empty.
- Original client order ID was empty.
- Invalid interval.
- Invalid symbol.
- Invalid symbolStatus.
- This listenKey does not exist.
- Lookup interval is too big.
- More than %s hours between startTime and endTime.
- Combination of optional parameters invalid.
- Invalid data sent for a parameter.
- Data sent for parameter '%s' is not valid.
strategyType
was less than 1000000.
- Invalid JSON Request
- JSON sent for parameter '%s' is not valid
- Invalid ticker type.
cancelRestrictions
has to be eitherONLY_NEW
orONLY_PARTIALLY_FILLED
.
- Symbol is present multiple times in the list.
- Invalid
X-MBX-SBE
header; expected<SCHEMA_ID>:<VERSION>
.
- Unsupported SBE schema ID or version specified in the
X-MBX-SBE
header.
- SBE is not enabled.
- Order type not supported in OCO.
- If the order type provided in the
aboveType
and/orbelowType
is not supported.
- Parameter '%s' is not supported if
aboveTimeInForce
/belowTimeInForce
is not GTC. - If the order type for the above or below leg is
STOP_LOSS_LIMIT
, andicebergQty
is provided for that leg, thetimeInForce
has to beGTC
else it will throw an error.
- A limit order in a buy OCO must be below.
- A limit order in a sell OCO must be above.
- Both OCO orders cannot be contingent.
- At least one OCO order must be contingent.
- Invalid tag number.
- Tag '%s' not defined for this message type.
- Tag '%s' appears more than once.
- Tag '%s' specified out of required order.
- Repeating group '%s' fields out of order.
- Component '%s' is incorrectly populated on '%s' order. Recommendation: '%s'
- Continuation of sequence numbers to new session is currently unsupported. Sequence numbers must be reset for each new session.
- Logon
<A>
should only be sent once.
CheckSum(10)
contains an incorrect value.BeginString (8)
is not the first tag in a message.MsgType (35)
is not the third tag in a message.BodyLength (9)
does not contain the correct byte count.- Only printable ASCII characters and SOH (Start of Header) are allowed.
SenderCompId(49)
contains an incorrect value. The SenderCompID value should not change throughout the lifetime of a session.
MsgSeqNum(34)
contains an unexpected value. Expected: '%d'.
- Logon
<A>
must be the first message in the session.
- Too many messages; current limit is '%d' messages per '%s'.
- Conflicting fields: [%s]
- Requested operation is not allowed in DropCopy sessions.
- DropCopy sessions are not supported on this server. Please reconnect to a drop copy server.
- Only DropCopy sessions are supported on this server. Either reconnect to order entry server or send
DropCopyFlag (9406)
field.
- NEW_ORDER_REJECTED
- CANCEL_REJECTED
- Order does not exist.
- API-key format invalid.
- Invalid API-key, IP, or permissions for action.
- No trading window could be found for the symbol. Try ticker/24hrs instead.
- Order was canceled or expired with no executed qty over 90 days ago and has been archived.
This code is sent when an error has been returned by the matching engine. The following messages which will indicate the specific error:
Error message | Description |
---|---|
"Unknown order sent." | The order (by either orderId , clOrdId , origClOrdId ) could not be found. |
"Duplicate order sent." | The clOrdId is already in use. |
"Market is closed." | The symbol is not trading. |
"Account has insufficient balance for requested action." | Not enough funds to complete the action. |
"Market orders are not supported for this symbol." | MARKET is not enabled on the symbol. |
"Iceberg orders are not supported for this symbol." | icebergQty is not enabled on the symbol. |
"Stop loss orders are not supported for this symbol." | STOP_LOSS is not enabled on the symbol. |
"Stop loss limit orders are not supported for this symbol." | STOP_LOSS_LIMIT is not enabled on the symbol. |
"Take profit orders are not supported for this symbol." | TAKE_PROFIT is not enabled on the symbol. |
"Take profit limit orders are not supported for this symbol." | TAKE_PROFIT_LIMIT is not enabled on the symbol. |
"Price * QTY is zero or less." | price * quantity is too low. |
"IcebergQty exceeds QTY." | icebergQty must be less than the order quantity. |
"This action is disabled on this account." | Contact customer support; some actions have been disabled on the account. |
"This account may not place or cancel orders." | Contact customer support; the account has trading ability disabled. |
"Unsupported order combination" | The orderType , timeInForce , stopPrice , and/or icebergQty combination isn't allowed. |
"Order would trigger immediately." | The order's stop price is not valid when compared to the last traded price. |
"Cancel order is invalid. Check origClOrdId and orderId." | No origClOrdId or orderId was sent in. |
"Order would immediately match and take." | LIMIT_MAKER order type would immediately match and trade, and not be a pure maker order. |
"The relationship of the prices for the orders is not correct." | The prices set in the OCO is breaking the Price restrictions. For reference: BUY : LIMIT_MAKER price < Last Traded Price < stopPrice SELL : LIMIT_MAKER price > Last Traded Price > stopPrice |
"OCO orders are not supported for this symbol" | OCO is not enabled on the symbol. |
"Quote order qty market orders are not support for this symbol." | MARKET orders using the parameter quoteOrderQty are not enabled on the symbol. |
"Trailing stop orders are not supported for this symbol." | Orders using trailingDelta are not enabled on the symbol. |
"Order cancel-replace is not supported for this symbol." | POST /api/v3/order/cancelReplace (REST API) or order.cancelReplace (WebSocket API) is not enabled on the symbol. |
"This symbol is not permitted for this account." | Account and symbol do not have the same permissions. (e.g. SPOT , MARGIN , etc) |
"This symbol is restricted for this account." | Account is unable to trade on that symbol. (e.g. An ISOLATED_MARGIN account cannot place SPOT orders.) |
"Order was not canceled due to cancel restrictions." | Either cancelRestrictions was set to ONLY_NEW but the order status was not NEW or cancelRestrictions was set to ONLY_PARTIALLY_FILLED but the order status was not PARTIALLY_FILLED . |
"Rest API trading is not enabled." / "WebSocket API trading is not enabled." | Order is being placed or a server that is not configured to allow access to TRADE endpoints. |
"Order book liquidity is less than LOT_SIZE filter minimum quantity." |
Quote quantity market orders cannot be placed when the order book liquidity is less than minimum quantity configured for the LOT_SIZE filter. |
"Order book liquidity is less than MARKET_LOT_SIZE filter minimum quantity." |
Quote quantity market orders cannot be placed when the order book liquidity is less than the minimum quantity for MARKET_LOT_SIZE filter. |
"Order book liquidity is less than symbol minimum quantity." | Quote quantity market orders cannot be placed when there are no orders on the book. |
This code is sent when either the cancellation of the order failed or the new order placement failed but not both.
This code is sent when both the cancellation of the order failed and the new order placement failed.
Error message | Description |
---|---|
"Filter failure: PRICE_FILTER" | price is too high, too low, and/or not following the tick size rule for the symbol. |
"Filter failure: PERCENT_PRICE" | price is X% too high or X% too low from the average weighted price over the last Y minutes. |
"Filter failure: LOT_SIZE" | quantity is too high, too low, and/or not following the step size rule for the symbol. |
"Filter failure: MIN_NOTIONAL" | price * quantity is too low to be a valid order for the symbol. |
"Filter failure: NOTIONAL" | price * quantity is not within range of the minNotional and maxNotional |
"Filter failure: ICEBERG_PARTS" | ICEBERG order would break into too many parts; icebergQty is too small. |
"Filter failure: MARKET_LOT_SIZE" | MARKET order's quantity is too high, too low, and/or not following the step size rule for the symbol. |
"Filter failure: MAX_POSITION" | The account's position has reached the maximum defined limit. This is composed of the sum of the balance of the base asset, and the sum of the quantity of all open BUY orders. |
"Filter failure: MAX_NUM_ORDERS" | Account has too many open orders on the symbol. |
"Filter failure: MAX_NUM_ALGO_ORDERS" | Account has too many open stop loss and/or take profit orders on the symbol. |
"Filter failure: MAX_NUM_ICEBERG_ORDERS" | Account has too many open iceberg orders on the symbol. |
"Filter failure: TRAILING_DELTA" | trailingDelta is not within the defined range of the filter for that order type. |
"Filter failure: EXCHANGE_MAX_NUM_ORDERS" | Account has too many open orders on the exchange. |
"Filter failure: EXCHANGE_MAX_NUM_ALGO_ORDERS" | Account has too many open stop loss and/or take profit orders on the exchange. |
"Filter failure: EXCHANGE_MAX_NUM_ICEBERG_ORDERS" | Account has too many open iceberg orders on the exchange. |