WebSocket API

Errors

WebSocket error response format and common integration errors

Error Format

Error messages have a type of error and a human-readable message. There is no numeric code or channel field.

{
  "type": "error",
  "message": "invalid channel"
}

Common Errors

messageCauseResolution
empty messageClient sent a zero-length or whitespace-only frameSend a valid JSON object or text command
invalid JSONFrame starts with { but is not valid JSONFix the JSON syntax
no valid commandsText-format frame could not be parsed into any commandUse the documented text or JSON command format
unknown operationop field is not sub, unsub, auth, or pingUse a supported operation
invalid channelChannel name is not recognizedUse a channel from the Channels index
invalid subscription paramsparams could not be parsed as subscription parametersCheck the params format for the channel
authentication requiredSubscribed to a private channel before authenticatingSend an auth message first
missing marketbook/ticker subscription has no market paramInclude params: { market }
invalid marketmarket param is not a known marketVerify the market ID
missing assetoracle subscription has no asset paramInclude params: { asset }
invalid assetasset param is not a known assetVerify the asset symbol
only 1 filter allowedMore than one of market/asset/event was sentSend at most one filter
filters not allowedportfolio or notification channel does not accept filtersRemove the params filter from the subscription
invalid event filterevent channel received a non-event filter (market or asset)Use params: { event } or omit params entirely
invalid timestampAuth timestamp is malformedSend Unix seconds as a string
timestamp expiredAuth timestamp is outside ±60s of server timeResync clock and retry
invalid signatureAuth HMAC signature does not matchRecompute the signature (see Overview)
invalid api keyAPI key is unknownCheck the key
api key expiredAPI key has passed its expiryIssue a new key
internal errorServer-side failure during subscribe, unsubscribe, or authRetry the request; if persistent, report the issue

Operational Guidance

  1. Treat auth failures as non-retryable until credentials/signature are refreshed.
  2. Treat unsupported channel/market errors as configuration bugs, not transient failures.
  3. Log full error payloads for diagnostics.
  4. Reconnect with backoff only for transport-level failures.

See GET /error-codes for the full list of REST API error codes.

On this page