Tool
Exchange Error Lookup
Look up exchange API error codes for Binance, Bybit, Kraken, and Coinbase. Get the meaning, root cause, and recovery action for each error.
Exchange API errors typically fall into a few categories: clock drift (timestamp out of sync), authentication (invalid key/signature/IP), rate limiting (too many requests), and validation (order parameters, precision, balance). The most common production issues are timestamp drift (-1021 on Binance, 10016 on Bybit) and rate limiting (10006 on Bybit).
Showing 27 of 27 errors
Timestamp for this request is outside of the recvWindow
Your server clock is out of sync with Binance's API servers. The timestamp in the request header is either ahead or behind the allowed recvWindow (default 5000ms).
Recovery: Sync your server clock using NTP. Increase recvWindow if clock sync is difficult. Common in cloud VMs with drift issues.
Invalid API-key, IP, or permissions for action
The API key is invalid, the IP address is not whitelisted, or the key does not have permission for the requested endpoint.
Recovery: Check API key permissions in Binance dashboard. Whitelist your server IP. Regenerate the key if it was revoked.
Filter failure: LOT_SIZE or PRICE_FILTER
The order quantity or price does not meet the trading pair's filter rules (min/max/step size).
Recovery: Fetch the exchange info for the symbol and validate order params against LOT_SIZE, PRICE_FILTER, and MIN_NOTIONAL.
Insufficient balance
Account does not have enough funds to place the order.
Recovery: Check available balance via account endpoint. Ensure you're using the correct free balance (not locked in other orders).
Order does not exist
Attempting to cancel or query an order that doesn't exist or was already filled/cancelled.
Recovery: Implement idempotency for cancel operations. Use order list endpoint to verify order state before acting.
Unsupported order combination
The order type, time in force, or other parameters form an invalid combination.
Recovery: Validate order parameters against exchange info. Check pair trading status and permissions.
Precision is over the maximum defined for this asset
Price or quantity has too many decimal places for the trading pair.
Recovery: Use the exchange info endpoint to get exact precision rules for each symbol before placing orders.
Unknown error
Generic server error with no specific cause.
Recovery: Retry the request. If persistent, check Bybit system status page.
Invalid request
Request parameters are malformed or missing required fields.
Recovery: Validate all request parameters against Bybit API documentation before sending.
Invalid signature
The API request signature is incorrect or malformed.
Recovery: Check your signing logic. Verify API secret, timestamp, and parameter ordering match Bybit's specification.
Rate limit exceeded
Request frequency exceeds the API rate limit for your API key.
Recovery: Implement request throttling. Use the rate limit headers in responses to adjust your sending rate dynamically.
IP not in whitelist
Requesting IP is not in the API key's whitelist.
Recovery: Add your server IP to the API key whitelist in Bybit account settings.
Timestamp for this request is invalid
Request timestamp differs from server time by more than the allowed threshold.
Recovery: Sync system clock via NTP. Implement timestamp retrieval from Bybit server time endpoint before signing.
Leverage modification not permitted
Cannot change leverage due to open positions or active orders.
Recovery: Close all positions and cancel orders before adjusting leverage. Check current position state first.
Insufficient balance
Account equity is too low for the requested operation.
Recovery: Check wallet balance and margin requirements. Reduce position size or add funds.
Rate limit exceeded
Too many requests in a short period. Kraken enforces a strict rate limit per IP and API key.
Recovery: Implement request throttling. Add delay between requests. Kraken recommends no more than 1 request per second for most endpoints.
Invalid arguments
Request contains invalid or missing parameters.
Recovery: Check endpoint documentation for required parameters. Validate data types and ranges before sending.
Service temporarily unavailable
Kraken backend servers are temporarily down or in maintenance.
Recovery: Wait and retry with exponential backoff. Check Kraken status page for scheduled maintenance.
Permission denied
API key does not have permission for the requested operation.
Recovery: Check API key permissions in Kraken account. Ensure key has the required access level.
Cannot open opposing position
Attempting to open a position in the opposite direction of an existing position with no reduce-only flag.
Recovery: Use reduce-only orders when closing positions. Or close existing position before opening opposite.
Insufficient margin
Account equity is too low to support the position size.
Recovery: Reduce position size or add funds. Check margin requirements for the trading pair.
Rate limit exceeded
Request frequency exceeds Coinbase API rate limits.
Recovery: Implement exponential backoff. Reduce request frequency. Coinbase allows 3 requests per second for REST API.
Invalid signature
The CB-ACCESS-SIGN header is incorrect.
Recovery: Verify your signing implementation. The signature must be HMAC-SHA256 of the timestamp + method + requestPath + body.
Invalid API key
The API key provided is invalid or has been revoked.
Recovery: Check API key exists and is active in Coinbase settings. Regenerate if necessary.
Unauthorized
API key lacks permission for the requested resource.
Recovery: Review API key permissions. Ensure the key has the required scopes for the endpoint.
Insufficient funds
Account does not have enough funds for the transaction.
Recovery: Check available balance. Consider reducing order size or depositing additional funds.
Timestamp out of sync
Request timestamp differs from server time by more than 30 seconds.
Recovery: Sync server clock via NTP. Use the Coinbase server time endpoint to calculate the timestamp offset.
| Exchange | Code | Error | Meaning | Recovery | Copy |
|---|---|---|---|---|---|
| Binance | -1021 | Timestamp for this request is outside of the recvWindow | Your server clock is out of sync with Binance's API servers. The timestamp in the request header is either ahead or behind the allowed recvWindow (default 5000ms). | Sync your server clock using NTP. Increase recvWindow if clock sync is difficult. Common in cloud VMs with drift issues. | |
| Binance | -2015 | Invalid API-key, IP, or permissions for action | The API key is invalid, the IP address is not whitelisted, or the key does not have permission for the requested endpoint. | Check API key permissions in Binance dashboard. Whitelist your server IP. Regenerate the key if it was revoked. | |
| Binance | -1013 | Filter failure: LOT_SIZE or PRICE_FILTER | The order quantity or price does not meet the trading pair's filter rules (min/max/step size). | Fetch the exchange info for the symbol and validate order params against LOT_SIZE, PRICE_FILTER, and MIN_NOTIONAL. | |
| Binance | -2010 | Insufficient balance | Account does not have enough funds to place the order. | Check available balance via account endpoint. Ensure you're using the correct free balance (not locked in other orders). | |
| Binance | -2011 | Order does not exist | Attempting to cancel or query an order that doesn't exist or was already filled/cancelled. | Implement idempotency for cancel operations. Use order list endpoint to verify order state before acting. | |
| Binance | -1010 | Unsupported order combination | The order type, time in force, or other parameters form an invalid combination. | Validate order parameters against exchange info. Check pair trading status and permissions. | |
| Binance | -1111 | Precision is over the maximum defined for this asset | Price or quantity has too many decimal places for the trading pair. | Use the exchange info endpoint to get exact precision rules for each symbol before placing orders. | |
| Bybit | 10001 | Unknown error | Generic server error with no specific cause. | Retry the request. If persistent, check Bybit system status page. | |
| Bybit | 10002 | Invalid request | Request parameters are malformed or missing required fields. | Validate all request parameters against Bybit API documentation before sending. | |
| Bybit | 10004 | Invalid signature | The API request signature is incorrect or malformed. | Check your signing logic. Verify API secret, timestamp, and parameter ordering match Bybit's specification. | |
| Bybit | 10006 | Rate limit exceeded | Request frequency exceeds the API rate limit for your API key. | Implement request throttling. Use the rate limit headers in responses to adjust your sending rate dynamically. | |
| Bybit | 10007 | IP not in whitelist | Requesting IP is not in the API key's whitelist. | Add your server IP to the API key whitelist in Bybit account settings. | |
| Bybit | 10016 | Timestamp for this request is invalid | Request timestamp differs from server time by more than the allowed threshold. | Sync system clock via NTP. Implement timestamp retrieval from Bybit server time endpoint before signing. | |
| Bybit | 10028 | Leverage modification not permitted | Cannot change leverage due to open positions or active orders. | Close all positions and cancel orders before adjusting leverage. Check current position state first. | |
| Bybit | 10043 | Insufficient balance | Account equity is too low for the requested operation. | Check wallet balance and margin requirements. Reduce position size or add funds. | |
| Kraken | EAPI:Rate limit exceeded | Rate limit exceeded | Too many requests in a short period. Kraken enforces a strict rate limit per IP and API key. | Implement request throttling. Add delay between requests. Kraken recommends no more than 1 request per second for most endpoints. | |
| Kraken | EGeneral:Invalid arguments | Invalid arguments | Request contains invalid or missing parameters. | Check endpoint documentation for required parameters. Validate data types and ranges before sending. | |
| Kraken | EService:Unavailable | Service temporarily unavailable | Kraken backend servers are temporarily down or in maintenance. | Wait and retry with exponential backoff. Check Kraken status page for scheduled maintenance. | |
| Kraken | EGeneral:Permission denied | Permission denied | API key does not have permission for the requested operation. | Check API key permissions in Kraken account. Ensure key has the required access level. | |
| Kraken | EOrder:Cannot open opposing position | Cannot open opposing position | Attempting to open a position in the opposite direction of an existing position with no reduce-only flag. | Use reduce-only orders when closing positions. Or close existing position before opening opposite. | |
| Kraken | EOrder:Insufficient margin | Insufficient margin | Account equity is too low to support the position size. | Reduce position size or add funds. Check margin requirements for the trading pair. | |
| Coinbase | RATE_LIMIT_EXCEEDED | Rate limit exceeded | Request frequency exceeds Coinbase API rate limits. | Implement exponential backoff. Reduce request frequency. Coinbase allows 3 requests per second for REST API. | |
| Coinbase | INVALID_SIGNATURE | Invalid signature | The CB-ACCESS-SIGN header is incorrect. | Verify your signing implementation. The signature must be HMAC-SHA256 of the timestamp + method + requestPath + body. | |
| Coinbase | INVALID_API_KEY | Invalid API key | The API key provided is invalid or has been revoked. | Check API key exists and is active in Coinbase settings. Regenerate if necessary. | |
| Coinbase | UNAUTHORIZED | Unauthorized | API key lacks permission for the requested resource. | Review API key permissions. Ensure the key has the required scopes for the endpoint. | |
| Coinbase | INSUFFICIENT_FUNDS | Insufficient funds | Account does not have enough funds for the transaction. | Check available balance. Consider reducing order size or depositing additional funds. | |
| Coinbase | TIMESTAMP_OUT_OF_SYNC | Timestamp out of sync | Request timestamp differs from server time by more than 30 seconds. | Sync server clock via NTP. Use the Coinbase server time endpoint to calculate the timestamp offset. |