Error Reference

HTTP status codes, JSON-RPC errors, WebSocket close codes, and how to fix them.

HTTP Status Codes

CodeErrorCause & Resolution
400Invalid RequestMalformed JSON, missing jsonrpc/method/id, or batch size > 20.
401Auth FailedInvalid signature, clock drift (>30s), expired session, or malformed key. See troubleshooting below.
402Insufficient CreditsBalance is zero. Deposit USDC to continue.
403ForbiddenTier restriction (getProgramAccounts requires Performance) or replayed nonce.
404Not FoundAccount not activated. Call POST /account/activate first.
429Rate LimitedExceeded your tier's request limit. Use Retry-After header and exponential backoff.
500Internal ErrorServer-side issue. Include X-Request-Id when contacting support.
502Upstream ErrorSolana node unreachable. Check /health endpoint.
503Service UnavailableMaintenance or overload. Check status page.

JSON-RPC Error Codes

These appear inside a 200 OK response when the error originates from the Solana node.

CodeErrorDescription
-32700Parse ErrorInvalid JSON in request body
-32601Method Not FoundUnsupported or misspelled method name
-32602Invalid ParamsWrong parameter types or format (e.g., expected base58 pubkey)
-32002Simulation FailedTransaction simulation failed (blockhash not found, insufficient funds, etc.)
-32005Node UnhealthySolana node is behind or unresponsive
-32007TimeoutLong-running operation exceeded timeout

WebSocket Close Codes

CodeReasonResolution
1008Policy ViolationToken expired — re-authenticate and reconnect
4001Auth FailedInvalid token — verify your authentication
4002Insufficient CreditsBalance below 10 — deposit USDC and reconnect
4003Rate LimitedSending messages too fast — add delays between sends

Troubleshooting 401 Errors

Authentication failures are the most common issue. Check these in order:

  1. Clock sync — your system time must be within ±30 seconds of UTC. Run ntpdate pool.ntp.org or check your NTP daemon.
  2. Body hash — must be SHA-256 of the exact raw request body string. Even whitespace differences will cause failure.
  3. Encoding — signature and public key must both be base58-encoded.
  4. Payload format — v1: {timestamp}:{nonce}:{body_hash}. v2: {method}:{path}:{timestamp}:{nonce}:{body_hash}
  5. v2 headers — if using auth v2, you must include X-Auth-Version: 2, X-Http-Method, and X-Http-Path

Credit & Deposit Issues

Request Timeouts

CategoryTimeoutMethods
Read — Light5sgetSlot, getBalance, getAccountInfo
Read — Medium15sgetTransaction, simulateTransaction
Read — Heavy30sgetProgramAccounts, getBlock
Send10ssendTransaction, sendBundle

Performance Tier Restrictions

These methods return 403 Forbidden on Standard tier:

See Account Tiers to upgrade.