Gate errors
1Gate errors
Gate error labels in LootX: INVALID_KEY, INVALID_SIGNATURE, BALANCE_NOT_ENOUGH, REQUEST_EXPIRED, and the per-pair order rate limit.
Gate reports an error not as a number but as a text label: {"label":"BALANCE_NOT_ENOUGH","message":"…"}. The label is the main thing: it tells you what happened, and message adds details. If the terminal doesn’t recognize the label, the popup after “Order:” shows the exchange response as is — for example, Gate POST …: HTTP 400 {"label":"BALANCE_NOT_ENOUGH",…}.
Spot and USDT futures on Gate are separate API sections with their own key permissions. Rate limits on spot are counted separately per pair, so active trading of a single coin hits the limit sooner than the overall request flow. The general procedure for reading errors is on the Error messages: how to read page, and key setup is in Connect exchanges and API keys.
What the terminal explains itself
| Situation | Label | What you’ll see |
|---|---|---|
| Exchange rejected the key | INVALID_KEY — in response to a request or on subscribing to a private stream |
Card with the connection name: “…: exchange rejected API key or secret — check them in connection settings”. In Settings → Connections, the connection has a tooltip “Exchange rejected API key or secret”. The terminal retries about every 30 seconds |
| Signature not confirmed | INVALID_SIGNATURE |
On connection — the same card; on an order — “Order rejected: invalid API key or secret” |
| Signature mismatch only for a coin with a non-Latin name | INVALID_SIGNATURE |
Nothing: the terminal retries the request with a different signature form and then signs this coin correctly going forward |
| Too many requests | HTTP 429 and 418 | “⚠ … rate limit (429), pause ~3 s — until 12:00:03 UTC”. The terminal waits a pause of up to three seconds itself and sends the request after it. Consecutive rejections lengthen the pause: 8, 25, then 60 seconds |
| Clocks out of sync | REQUEST_EXPIRED |
The rejection is not treated as a key error and the connection is not dropped. The terminal syncs time with the exchange on connection and once per minute |
| Order no longer exists | ORDER_NOT_FOUND |
Nothing: the cancellation is considered completed |
| No position | POSITION_NOT_FOUND |
Nothing: the terminal treats the contract position as zero |
| Spot order volume or amount below minimum | — | “Gate …: volume … below minimum …” or “Gate …: order amount … below exchange minimum …”. The terminal checks this before sending, and the order is not sent to the exchange |
| Not enough coins when closing a spot position | BALANCE_NOT_ENOUGH |
The terminal retries the sale with a volume reduced by the fee. If that doesn’t help, it shows the exchange text |
| Nothing to close on spot | — | “Gate …: no SOL in wallet — position already closed”. The order is not sent to the exchange |
| Position mode on futures | — | The terminal detects the account mode — single or dual — and builds the order accordingly |
| Exchange suspended API trading for a coin | based on words in the response | “API trading is unavailable for this coin — exchange restriction” |
Reference requests — trade history and funds movements — do not drop the connection if authorization fails: trading continues to work even if such a request fails.
Common codes
| Label | What it looks like | Cause | What to do |
|---|---|---|---|
INVALID_KEY |
Card “exchange rejected API key or secret” | The key is wrong or deleted | Check the key on the Gate website and paste it again into API Key — see Exchange rejected the key |
INVALID_SIGNATURE |
Card or “Order rejected: invalid API key or secret” | The secret doesn’t match the key | Paste API Secret again |
REQUEST_EXPIRED |
Exchange text in the order message | Computer clock out of sync with the exchange, most often after waking from sleep | Retry the order in a minute. If it recurs, enable time synchronization in Windows |
BALANCE_NOT_ENOUGH |
Exchange text in the order message | Not enough free funds: some are locked by orders or went to fees | See Not enough funds |
| HTTP 429, “Request Rate Limit Exceeded” | “rate limit (429), pause ~N s…” | Request rate limit exceeded | Wait for the pause to end |
| “Request Rate Limit Exceeded (007), currency_pair:…” | Same | More than 10 orders per second per one spot pair | See Per-pair order rate limit |
ORDER_NOT_FOUND |
Nothing | The order being cancelled no longer exists: filled or removed | Nothing to do |
POSITION_NOT_FOUND |
Nothing | No open position on the contract | Nothing to do |
How to fix common problems
Exchange rejected the key
Check that the key exists
Open APIv4 key management in your Gate profile. If the key is not in the list, it was deleted — create a new one.
Copy the key and secret again
Gate shows the secret only at key creation — if it wasn’t saved, create a new key. In Settings → Connections, paste the values into API Key and API Secret without surrounding spaces.
Check key permissions
The key must have trading enabled for the markets selected by the connection toggles Spot and Futures: spot trading for spot, perpetual futures for futures. Account data read permissions are not required for trading.
Check IP binding
If the key is bound to an IP list, your computer’s external address must be in it. If you work through a proxy (the Proxy section in the connection card), add the proxy address.
After fixing, the terminal reconnects automatically on the next attempt.
Per-pair order rate limit
On spot, Gate limits order placement separately for each pair: no more than 10 requests per second per one coin, and the limits for different pairs are independent. The response “Request Rate Limit Exceeded (007), currency_pair:…” is exactly this per-second limit on one coin, not an account block.
- The terminal waits out a short pause itself: the order will go out in a couple of seconds, and trading other coins is not interrupted.
- If rejections come in a row, the pause grows to a minute. The end time is shown in the message, in UTC.
Not enough funds
Funds under open orders are locked — cancel unnecessary orders or reduce the volume. On futures, an order needs margin based on the leverage.
When closing a spot position by selling, the shortfall often comes from the fee: on a buy, the fee may be charged in the purchased coin, so the entire purchased volume can no longer be sold. The terminal checks the volume against the wallet and, on rejection, retries the sale with a slightly smaller volume. After that, a “dust” amount smaller than the volume step may remain in the wallet — it cannot be sold with an order.
Clocks out of sync
The REQUEST_EXPIRED label means the request time is too far from the exchange time. This usually happens after the computer wakes from sleep. The terminal syncs clocks with Gate once per minute, so the rejection passes on its own. If it recurs constantly, enable automatic time setting in Windows and manually sync the clock once in the date and time settings.
Next
https://docs.lootx.trade/en/terminal/errors-gate