Errors & Troubleshooting

Standard Error Payloads and Resolution Strategies

Tower APIs return standard JSON payloads whenever a request fails or cannot be processed.


Standard Error Schema

json
{
  "success": false,
  "error": "Error message describing the failure condition",
  "status": 400
}

Common Error Codes & Troubleshooting

Error CodeHTTP StatusRoot CauseResolution
INVALID_API_KEY401 UnauthorizedMissing, invalid, expired, or revoked Developer API key.Check that your key starts with sk_live_ or sk_test_ and is passed in Authorization: Bearer <key> or x-api-key.
SCOPE_FORBIDDEN403 ForbiddenThe API key lacks the required permission scope (e.g. swaps, bridges).Regenerate or update your API key in the Developer Console to grant the required scope.
INSUFFICIENT_LIQUIDITY404 Not FoundThe requested trade volume exceeds total pool reserves across all Arc DEXes.Decrease inputAmount or split the order into smaller increments over time.
NO_ROUTE_FOUND404 Not FoundNo liquidity pool or multi-hop path exists between the chosen token pair.Verify that both tokens are active on Arc and have supported liquidity pools.
SLIPPAGE_EXCEEDED400 Bad RequestMarket price moved beyond configured slippageTolerance between quote and build steps.Request a fresh quote or increase slippageTolerance (e.g. from 50 to 100 bps).
QUOTE_EXPIRED400 Bad RequestThe quote validity window elapsed before transaction broadcast.Quotes are time-sensitive. Wrap swap executions in retry logic to fetch a fresh quote if execution takes longer than 60s.
INVALID_TOKEN400 Bad RequestSupplied token ticker or contract address is unsupported or malformed.Verify token contract addresses on Arc Testnet (e.g. USDC 0x3600...0000, EURC 0x89B5...D72a).
UNSUPPORTED_CHAIN400 Bad RequestThe supplied chainId is unrecognized by the RPC proxy or bridge service.Use valid chain identifiers like 5042002 (Arc Testnet) or 84532 (Base Sepolia).
RATE_LIMIT_EXCEEDED429 Too Many RequestsRequest frequency or monthly compute unit quota exceeded.Implement exponential backoff and adhere to the Retry-After header.
WALLET_NOT_FOUND400 Bad RequestMalformed wallet address format or invalid checksum.Verify that wallet address is a valid 42-character hexadecimal EVM address or base58 Solana address.
UPSTREAM_ERROR502 Bad GatewayUpstream blockchain RPC node or external price feed failed to respond.Retry the request after a short interval; Tower's gateway automatically rotates fallback nodes.

HTTP Status Code Summary

  • 200 OK: The request succeeded and the response contains the requested data.
  • 400 Bad Request: Missing required parameters, invalid JSON syntax, or unsupported tokens/chains.
  • 401 Unauthorized: Authentication failed due to a missing or invalid API key.
  • 403 Forbidden: Valid API key provided, but lacks the necessary scope permissions.
  • 404 Not Found: Resource, route, or liquidity pair could not be located.
  • 429 Too Many Requests: Rate limit exceeded for your tier.
  • 500 Internal Server Error: An unexpected server-side execution failure occurred.
  • 502 Bad Gateway: Upstream blockchain node or indexing RPC was unreachable.