LootX

Bybit Errors

new Updated September 30, 2026 This page as PDF

Bybit error codes in LootX: key and signature, permissions, insufficient funds, minimum order amount, and request limits.

Bybit responds to every request with retCode and retMsg fields: zero in retCode means success, any other number means failure with an English explanation. The error often comes with a normal HTTP status 200, so you need to look at the code itself. Spot trading codes on Bybit typically start with 170…, futures and unified trading account codes start with 110…, and key and signature codes start with 100….

If the terminal does not recognize the code, the popup message after “Order:” will show Bybit’s response as Bybit error 170131: Insufficient balance. — first the number, then the exchange’s text. For the general procedure for reading errors, see Error messages: how to read them; for key setup, see Connecting exchanges and API keys.

What the terminal explains itself

Situation Codes What you will see
Exchange rejected the key or signature on connection 10003, 10004, text “API key is invalid” when entering the private stream Card with the connection name: “…: exchange rejected the API key or secret — check them in connection settings”. In Settings → Connections, the connection shows a tooltip “Exchange rejected the API key or secret”. The terminal retries roughly every 30 seconds
Invalid signature on an order 10004 “Order rejected: invalid API key or secret”
Too many requests HTTP 429 and 403 “⚠ … request limit exceeded (403), restricted until 30.09.2026 12:01:00 UTC”. The terminal paces itself
Clock skew 10002 The rejection is not treated as a key error, and the connection is not dropped. The terminal synchronizes time with the exchange on connection and once per minute — the next sync removes the discrepancy
Order no longer exists 110001, 170213 Nothing: the cancellation is considered complete
Nothing to cancel 10001 with text saying there are no active orders Nothing: the bulk cancellation is considered complete
Leverage already set 110043 Nothing: the terminal considers the leverage change complete
Spot order amount below minimum — The terminal increases the volume to the minimum order amount with a 1% buffer, if it knows the minimum for the coin
Not enough coins when closing a spot position 170131, 110007 The terminal immediately re-reads the wallet and retries the sale with a volume reduced by the fee amount. If that doesn’t work, it shows the exchange’s text
Nothing to close on spot — “Bybit SOLUSDT: nothing to sell — balance SOL = 0, position already closed”. The order is not sent to the exchange
Exchange suspended API trading for the coin based on words in the response “API trading is unavailable for this coin — exchange restriction”

Code 10005 — no permission for the action — the terminal deliberately does not call it “key rejected”: the key is valid, it just lacks the permission. Such a rejection comes as the exchange’s text.

Common codes

Code How it looks Cause What to do
10003 Card “exchange rejected the API key or secret” Key is invalid, deleted, or expired Check the key on the Bybit website and re-enter it — see Exchange rejected the key
10004 Card or “Order rejected: invalid API key or secret” Signature mismatch: secret doesn’t match the key Re-enter the API Secret
10005 Exchange text in the order message: “Permission denied for current apikey” The key doesn’t have permission for this action Enable the required key permissions — see Key lacks permissions
10002 Exchange text in the order message: “…server timestamp or recv_window param” Request time outside the allowed window: computer clock has drifted from the exchange, most often after waking from sleep Retry the order in a minute. If it recurs, enable time synchronization in Windows
HTTP 403 “request limit exceeded (403), restricted until …” Too frequent requests from a single IP Wait until the specified time, reduce the number of windows with Bybit
HTTP 429 “request limit exceeded (429), restricted until …” Request limit exceeded Wait for the pause to end
170131 Exchange text in the order message: “Insufficient balance” Not enough free funds on spot Check your free balance and cancel unnecessary orders — see Insufficient funds
110007 Exchange text in the order message: “ab not enough for new order” Not enough available balance on the unified trading account for the order Reduce the volume or leverage, or top up the account
170140 Exchange text in the order message: “Order value exceeded lower limit” Spot order amount is below the minimum Increase the volume
170032 Exchange text in the order message: “Network error, please try again later” Temporary failure on Bybit’s side, unrelated to balance Retry the order in a few seconds
110001 Nothing The order being cancelled no longer exists: filled or cancelled Nothing to do
170213 Nothing Same for a spot order Nothing to do
110043 Nothing Leverage is already set to that value Nothing to do

How to fix common problems

Exchange rejected the key

Check that the key exists and hasn’t expired

Open API management in your Bybit profile. The key may have been deleted. Also, Bybit limits the validity of keys without IP binding: if the key stopped working on its own, check its expiration date.

Copy the key and secret again

Bybit shows the secret only when creating the key — if it wasn’t saved, create a new key. In Settings → Connections, paste the values into API Key and API Secret without leading or trailing spaces.

Check IP binding

If the key has an IP whitelist, it must include your computer’s external address. If you’re using a proxy (the Proxy section in the connection card), add the proxy address.

After fixing, the terminal will reconnect on its own on the next attempt.

Key lacks permissions

Code 10005 means the key was accepted, but it doesn’t have permission for the action. Open the key in API management on the Bybit website and check:

  • the key was created with read and write permission, not read-only;
  • trading is enabled for the markets you work in: spot and/or derivatives — under the Spot and Futures toggles for the connection in the terminal.

You usually don’t need to recreate the key: permissions can be changed in the existing key’s settings.

Insufficient funds

On spot (170131), funds locked by open orders are unavailable for a new order. Cancel unnecessary orders or reduce the volume.

On the unified trading account (110007), an order requires margin based on leverage and existing positions. Reduce the volume, cancel orders, or top up the account.

When closing a spot position by selling, the shortfall often comes from the fee deducted in the purchased coin. The terminal accounts for this: it checks the volume against the wallet and, on rejection, retries the sale with a slightly smaller volume. This may leave “dust” on the wallet smaller than the volume step — it can’t be sold with an order.

Request limit exceeded

Bybit responds with 403 when there are too many requests from a single IP; the terminal also treats a 429 response as a limit exceeded. The terminal shows the time until which it waits and does not send requests to this exchange before then. The time is in UTC: in Moscow, add three hours. If the limits recur, reduce the number of windows and panels using Bybit on the same computer.

Account in hedge mode

LootX works with futures positions in one-way mode: one position per coin. If hedge mode is enabled for a contract on Bybit (separate long and short), the exchange will reject the terminal’s orders and positions will display incorrectly. Switch the position mode to one-way in the derivatives settings on the Bybit website.

Next

FAQ

What does Bybit error 10005 mean?
The key was accepted, but it doesn't have permission for this action. Enable read and write access and trading on the required markets for the key in Bybit API management.
Why did my Bybit key stop working without any changes?
The key may have been deleted, or it may have expired: Bybit limits the lifetime of keys without IP binding. Check the key in API management.
Why did Bybit return 403?
Too many requests from a single IP. The terminal shows when the rate limit expires in UTC and won't send requests until then.