Code | Message |
---|---|
1000 | "Invalid authentication token" |
1001 | "Authentication token is missing" |
1002 | "Authentication token is expired" |
1003 | "Authentication token mismatch" |
1015 | This error code is sent by Cloudflare or AWS WAF when API rate limits are exceeded |
2000 | "Firefly is unavailable in your region" |
2001 | "MANDATORY_PARAM_EMPTY_OR_MALFORMED" |
2002 | "Bad request" |
2003 | "Unauthorized" |
2004 | "Forbidden" |
2005 | "Not found" |
2006 | "Internal Server Error" |
2007 | "Conflict" |
2008 | "Service Unavailable" |
2009 | "This address has not been authorized for access to restricted launch" |
2010 | "Too many requests" |
3001 | "Invalid account address" |
3002 | "Incorrect symbol" |
3003 | "Invalid leverage" |
3004 | "Email already associated with different address." |
3005 | "Faucet unavailable; user already has sufficient balance." |
3006 | "Market(s) not found" |
3007 | "Invalid signature" |
3008 | "Some of auxiliary contract addresses are not valid" |
3009 | "Failed to submit Feedback, due to an invalid email: {email}" |
3010 | "Failed to submit Feedback, due to empty message" |
3011 | "Funding rate not set" |
3012 | "Leverage should be discrete number" |
3013 | "Please conform the asset size to {baseAssetPrecision} and try again" |
3014 | "Expiration time must be in the future." |
3016 | "Incorrect date range" |
3017 | "provide at least one of following value networkId , notificationUrl , rpcUrl , auxiliaryContractsAddresses" |
3018 | "Expiration must be under {days} days." |
3019 | "Quote Asset Precision Invalid. Allowed Precision is {quoteAssetPrecision}" |
3020 | "Market order price should be set to 0." |
3021 | "Max position value allowed at current leverage is {maxAllowedForSelectedLeverage} {quoteSymbol}." |
3022 | "No symbol provided" |
3023 | "No status provided" |
3024 | "config not found" |
3025 | "User does not have margin." |
3026 | "Email or account address is invalid" |
3027 | "Unauthorized email address" |
3028 | "Email address is already linked with an account" |
3029 | "Account is already linked with an email addres" |
3030 | "Account not linked with any of authorized emails" |
3031 | "Referral link already generated" |
3032 | "Account does not exists" |
3033 | "Failed to add Emails, due to an invalid email" |
3034 | "This route is not available on mainnet" |
3035 | "Market {symbol} not found." |
3036 | "Max limit order size allowed is {maxLimitOrderSize} {baseAssetSymbol}" |
3037 | "Max market order size allowed is {maxMarketOrderSize} {baseAssetSymbol}" |
3038 | "Min order size allowed is {minOrderSize} {baseAssetSymbol}" |
3039 | "Max limit order price allowed is {maxOrderPrice}" |
3040 | "Min limit order price allowed is {minOrderPrice}" |
3041 | "Maximum allowed leverage is {maxLeverageAllowed}" |
3042 | "Minimum allowed leverage is 1" |
3043 | "Order Leverage doesn't match with selected leverage" |
3044 | "Maximum open order limit reached." |
3045 | "Order leverage not in bounds." |
3046 | "Something went wrong" |
3047 | "Order Leverage doesn't match with position leverage" |
3048 | "Unknown security name: {security_name}" |
3049 | "Invalid Order Signature" |
3050 | "User not allowed with auth token" |
3051 | "limit {limit} is greater than allowed {allowed}" |
3052 | "limit {limit} is not in range ({min},{max})" |
3054 | "Order already placed." |
3055 | "User does not have sufficient balance." |
3056 | "Order(s) not found." |
3057 | "Order already filled." |
3058 | "Order already cancelled." |
3059 | "Order already in cancelling state." |
3060 | "Invalid order hash {orderHash}" |
3061 | "Maximum reducible quantity exceeded. If you have existing reducing orders, please cancel them first." |
3062 | "The user is not a trader alliance member" |
3063 | "The user is not a trader alliance partner" |
3064 | "Position would be undercollateralized" |
3065 | "The user is not allowed to update leverage due to failed verification" |
3066 | "The user is not allowed to create order due to failed verification" |
3067 | "Please provide market symbol to get parent account's orders, trades or positions" |
3068 | "User is not subaccount for this parent account" |
3069 | "The user is not allowed to update leverage due to open position" |
3070 | "More than 7 days between startTime and endTime." |
3071 | "Invalid interval" |
3072 | "Stop Price not provided or is zero" |
3074 | "Account Value should be > 0 to place stop orders" |
3075 | "Max trigger price allowed is {maxOrderPrice}" |
3076 | "Min trigger price allowed is {minOrderPrice}" |
3077 | "Maximum stop order limit reached." |
3078 | "User is not Affiliate" |
3079 | "Invalid API token" |
3080 | "Orders with orderbookOnly as false are not allowed" |
3081 | "Provided limit parameter is malformed" |
3082 | "startTime must be less than endTime" |
3083 | "There were no userAddresses passed to whitelist as Affiliate" |
3084 | "{market} is delisted" |
3085 | "FOK Orders are not currently supported on Sui" |
3086 | "Market Orders cannot be post only" |
3087 | "Affiliate cannot participate in Open Referral Program" |
4000 | "{exceptionMsg}" |
9000 | "{exceptionMsg}" |
Order Cancel Reasons: Rejected by Orderbook
EXPIRED:
Order was expired
MARKET_TAKE_BOUND_EXCEEDED:
The order was completely cancelled, as none of the maker order it matched against were inside the market take bound requirement
MARKET_TAKE_BOUND_PARTIALLY_EXCEEDED:
The order was partially filled, the remainder was cancelled as it was outside of market take bound
ORDER_SIZE_OUT_OF_BOUNDS:
Order size was greater or less than the allowed limit
TIF_FAILED:
The order was cancelled since it failed the TIF condition
IOC_PARTIAL_CANCEL:
The IOC order was partially filled and rest was cancelled since the remainder failed the IOC condition
COULD_NOT_FILL:
The market order could not be partially or completely filled
POST_ONLY_FAIL:
Post only condition failed
ORDERBOOK_RESET:
Order book is being reset
Order Cancel Reasons: On-Chain Reversions
UNDERCOLLATERALIZED
: This covers various cases as mentioned below - Can not flip or open new position - Position size can only be reduced - Add margin to avoid liquidation - Trade reduces your Margin Ratio further, when your margin ratio is already below IMR
INVALID_FILL_PRICE:
An order did not have the correct fill price
REDUCE_ONLY_FAILED:
An order that is marked as Reduce Only does not decrease the user’s position size
MAX_TRADE_PRICE_EXCEEDED:
This is caused when the trade price exceeds the maximum trade price allowed for a particular market.
MIN_TRADE_PRICE_CHECK_FAILED:
This is caused when the trade price is less than the minimum allowed trade price for a particular market.
MIN_TRADE_QTY_CHECK_FAILED:
This is caused when the trade quantity is less than the minimum allowed trade quantity for a particular market.
MARKET_TAKE_BOUND_CHECK_FAILED:
This is caused when the trade price is not within market take bounds - Trade price is > Market Take Bound for long side - Trade price is < Market Take Bound for short side
MAKER_QTY_OVERFILL:
This is caused when trade quantity is more than that of orders
INVALID_LEVERAGE:
This is caused when an order has invalid leverage
TRADING_NOT_STARTED:
Occurs when trading has not yet started after deployment of the contracts
NOT_ENOGUH_MARGIN_FOR_FUNDING:
Occurs when a trade has an order with an address whose has not enough margin to clear off funding payments due. Add margin before closing
INSUFFICIENT_BALANCE:
An account did not have enough balance to execute the order
LOSS_EXCEEDS_MARGIN:
Occurs when a trade has an order with an address whose loss exceeds the margin
INVALID_SIGNATURE:
This is caused when either the maker or taker order does not have a valid signature.
ORDER_ALREADY_CANCELLED:
This is caused when one of the orders involved in trade has been cancelled on the chain
TRADING_NOT_ALLOWED:
Occurs guardian has stopped trading on contracts maker does not match trade maker
EXPIRATION_CHECK_FAILED:
This is caused when either the maker or taker order is expired
OI_OPEN_EXCEEDS_MAX_ALLOWED_VALUE:
This is caused when OI open for an order is greater than max allowed oi open at selected leverage
MAX_QTY_LIMIT_EXCEEDED:
This is caused when a limit trade quantity is more than the maximum allowed LIMIT trade quantity for a particular market
MAX_QTY_MARKET_EXCEEDED:
This is caused when a market trade quantity is more than the maximum allowed MARKET trade quantity for a particular market
LEVERAGE_CANNOT_BE_ZERO:
Occurs when an order in trade has zero leverage
ORDER_QTY_OVERFILL:
Occurs when an order in trade has zero leverage
LOSS_EXCEEDS_MARGIN:
When the loss on a position exceeds the available margin in that position (includes funding payments as well as position PNL)
SAME_SIDE_ORDERS:
Occurs when the order in the trade are both of the same side
TAKER_CAN_NOT_BE_PO:
Taker trades cannot be post-only
NOT_ENOUGH_MARGIN_FOR_FUNDING:
Occurs when the user does not have enough margin for funding payment
TRADING_NOT_STARTED:
Occurs when trades are sent for execution for trade start time for a new market
MAKER_CAN_NOT_BE_IOC:
Occurs when the maker order is specified as IOC
UNAUTHORIZED_SENDER:
Occurs when the settlement engine is not whitelisted to perform trades
TRIGGER_PRICE_NOT_REACHED:
Occurs when the Trigger price has not been reached for the order
TRADE_MAKER_NO_MATCHED:
Occurs when an order maker does not match the trade maker
NETWORK_DOWN:
There are multiple reasons to receive this error - When the chain is unavailable - The chain did not respond in time - When too many calls are being made to the RPC endpoint
CALL_EXCEPTION:
Occurs when there is an unexpected issue with the on-chain transaction