Skip to main content

Documentation Index

Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt

Use this file to discover all available pages before exploring further.

Each exchange has its own error catalogue. When the bot logs error: -2015, knowing what -2015 means saves debugging time. This page is the operator’s quick reference for the codes you’ll most commonly encounter.

Binance error codes

Most common cause: IP allowlist mismatch — your VPS’s IP doesn’t match the API key’s allowlist at Binance.Other causes:
  • API key revoked at Binance.
  • API key permissions don’t include spot trading.
  • Wrong API key/secret pasted.
Fix:
  1. Verify VPS IP: curl -s https://api.ipify.org.
  2. Compare against Binance API key’s allowlist.
  3. Update if different. Wait 30–60 seconds for propagation.
  4. Verify spot trading is enabled.
  5. If still failing, regenerate API key.
The order’s notional value (price × quantity) is below the symbol’s minimum.Cause: per-split sizing too small. Most often: BasicMode (7 splits) at low capital produces splits below the $10 floor.Fix: increase capital allocation, or switch to a fewer-split mode (LowMoney, MinimalMoney, Tsl2Sell).
Account doesn’t have enough quote asset to cover the order.Causes:
  • Capital was withdrawn while bot was running.
  • Another bot/manual trade consumed the same balance.
  • Mode’s investment-per-buy higher than free quote.
Fix: top up balance, adjust investment-per-buy, or close other positions.
Clock drift between VPS and Binance servers exceeds recvWindow (60000 ms default).Fix:
  • Verify NTP: timedatectl status should show synchronized.
  • If not, install/start NTP service.
  • Don’t reduce recvWindow below 60000.
Rate limit hit. Binance: 50 orders / 10s per IP, plus other request-type ceilings.Fix:
  • Bot auto-cools-down. Persistent hits indicate over-aggressive configuration.
  • Reduce active pair count or split across multiple TradingBot containers.
Invalid symbol format or other malformed parameter.Fix: verify symbol naming uses unhyphenated form (BTCUSDT, not BTC-USDT).
Order ID not recognized by Binance — usually a stale order ID after restart or partial fill.Fix: typically auto-resolves on next reconciliation. If persistent, restart TradingBot.
API call missing a required field. Usually a TradingBot internal issue.Fix: capture the full request from logs and report to support.

Bybit error codes

Invalid API key, IP mismatch, or permissions issue.Fix:
  • Verify VPS IP matches Bybit allowlist.
  • Confirm spot trading permission enabled.
  • Wait 30–60 seconds for allowlist propagation after change.
Bot auto-cools-down. Persistent hits indicate too-aggressive configuration.
Malformed request. Usually a TradingBot internal issue or symbol format.
Equivalent to Binance’s clock-drift error. Check NTP sync.
Same fix as Binance -2010.

OKX error codes

Authentication failure on OKX. Most common: passphrase mistyped.Fix:
  1. Re-paste passphrase from password manager.
  2. Watch for trailing whitespace.
  3. If lost: revoke key at OKX, generate new with new passphrase.
OKX’s equivalent of Binance -2015. Verify VPS IP on the API key’s allowlist.
Same fix as other venues.
Bot auto-cools-down. OKX’s published limit: 60 requests / 2 seconds.
OKX uses dash-separated symbols (BTC-USDT), not unhyphenated.Fix: in Dashboard, use OKX’s native symbol format.

Kraken error codes

Equivalent to Binance -2015. IP mismatch, wrong key, insufficient permissions.Fix:
  • Verify VPS IP matches Kraken allowlist.
  • Confirm Modify Orders + Cancel/Close Orders permissions enabled.
  • Wait 30–60 seconds for any recent allowlist change.
Nonce ordering issue. Kraken signs requests with incrementing nonce; mis-ordered or duplicate nonce fails.Causes:
  • Two processes sharing the same API key.
  • Clock drift on VPS.
  • Concurrent racing.
Fix:
  • One API key per TradingBot.
  • Verify NTP.
  • If recurring without obvious cause, contact support.
Same as -2010 on Binance. Top up or adjust investment.
Kraken uses rolling-window counter. Bot handles auto-cooldown. Persistent hits indicate over-aggressive config.
Symbol not recognized. Kraken uses idiosyncratic naming for some assets:
  • XBT for Bitcoin (not BTC).
  • XDG for Dogecoin.
  • Some assets prefixed with X.
Fix: use Kraken’s native naming, or rely on the bot’s normalization.

Coinbase Advanced error codes

Authentication failure.Causes:
  • Whitespace in pasted secret.
  • Wrong portfolio binding.
  • Key permissions missing.
Fix:
  • Re-paste secret carefully.
  • Verify portfolio matches intended account.
  • Confirm Trade permission enabled.
  • Wait 30–60 seconds for allowlist propagation.
Equivalent to -2010 on Binance.
Bot handles cooldown automatically.
Symbol format issue. Coinbase uses dashes (BTC-USD, not BTCUSD).
Coinbase’s equivalent of MIN_NOTIONAL. Increase per-split sizing or switch modes.

Universal patterns across venues

Across all venues, authentication failures usually mean one of:
  • IP allowlist mismatch.
  • Wrong key/secret pasted.
  • Insufficient permissions.
  • Key revoked at venue.
Always: verify VPS IP, check permissions, retry after allowlist propagation, regenerate key if all else fails.
Bot auto-cools-down. Persistent hits → over-aggressive configuration. Reduce active pairs or split across multiple TradingBot containers.
Capital issue. Top up, reduce per-buy investment, or close existing positions to free capital.
Per-split sizing too small. Switch to mode with fewer splits, or increase capital.
Each venue has its own symbol convention:
  • Binance/Bybit/MEXC/Binance.US/Bybit EU: BTCUSDT.
  • OKX/KuCoin/BingX/Coinbase: BTC-USDT.
  • Gate.io/Poloniex: BTC_USDT.
  • HTX: btcusdt (lowercase).
  • Bitfinex: tBTCUSD.
  • Kraken: XBTUSDT for Bitcoin, etc.
Verify symbol naming matches venue convention.
All signed requests have timestamp validation. Clock drift on VPS triggers rejections.Universal fix: ensure NTP is running and synchronized.

Best practices for error code investigation

  • Read the full error message — most errors have descriptive text alongside the code.
  • Check Dashboard logs first — every refusal includes the venue’s response.
  • Cross-reference this page for the specific code.
  • Try the simple cause first — IP allowlist before deep investigation.
  • Wait 30–60 seconds after allowlist changes — propagation delays are real.
  • Check NTP sync for any timestamp-related error.
  • One change at a time during fixing — multiple simultaneous changes obscure root cause.
  • Document the fix in operator log — pattern recognition over time.
  • Don’t disable safeguards to “fix” errors — IP allowlist, withdrawal-disabled, etc. exist for reasons.
  • Escalate to support for unrecognized error codes after self-investigation.

What’s next

Common issues

The full common-issues catalog.

Connection problems

Connectivity-focused troubleshooting.

Escalation

When self-help isn’t enough.

API Key Security

The discipline that prevents many error codes.

Per-venue setup

Setup walkthroughs for each venue.

Support

Direct help for unresolved issues.
Last modified on May 3, 2026