Skip to main content

Error surfaces

SurfaceWhere it appearsMeaning
Subscription-control failureACKNOWLEDGE.result.errorThe server rejected a SUBSCRIBE or UNSUBSCRIBE request; correlate with the echoed nonce when present, but keep outstanding request bookkeeping because the payload schema only requires result
Order-domain rejectionORDER_UPDATE payload fields such as orderRejection or cancelRejectionThe WebSocket connection stayed alive, but an order-related event was rejected
Strategy-domain rejectionSTRATEGY_UPDATE.withdrawRejectionA collateral or insurance-fund withdrawal action was rejected
Trader-domain rejectionTRADER_UPDATE.withdrawDDXRejectionA DDX withdrawal action was rejected

Current public contract

  • ACKNOWLEDGE.result is the required acknowledgement field. The published subscribe and unsubscribe descriptions show the acknowledgement flow echoing the client nonce, but the payload schema does not require that echo.
  • ACKNOWLEDGE.result.error means the control message failed; an empty result means the control-plane request succeeded, not that later business-domain events cannot still reject.
  • User-data updates can carry rejection enums even when the connection itself is healthy.
  • Recovery logic should distinguish between reconnect-and-resubscribe problems, bootstrap or continuity repair, and business-level rejections inside a feed update.
  • The current published AsyncAPI family does not define a signed WebSocket command error channel.

Recovery split

Failure classRecovery posture
ACKNOWLEDGE.result.error on subscribe controlRepair the feed list or filter set, resend the control request, and do not assume the subscription state changed
Socket close or disconnectReconnect, resubscribe, and restore client bookkeeping before consuming new updates
Missing or suspect continuity after reconnectReconcile one update family at a time from REST/history plus the documented ordinal fields; do not compare globalOrdinal across different update types
Rejection fields inside ORDER_UPDATE, STRATEGY_UPDATE, or TRADER_UPDATEKeep the connection alive, then handle the business rejection in the affected trading, withdrawal, or trader-state flow

Adjacent routes

Last modified on April 13, 2026