Skip to main content
Errors flow as op-tagged frames with a code + human message:
Errors are sent per offending item, a subscribe with three channels where one is already-subscribed will get a confirmation for the two new ones plus one ALREADY_SUBSCRIBED error for the third. Errors are advisory and don’t close the connection

Per-market kill switch (FORBIDDEN)

The server keeps a hot-reloaded block list config/blocked-markets.toml). Any subscribe, subscribe_kline, subscribe_mid_kline, or resync targeting a blocked market is rejected with FORBIDDEN before it reaches the normal handlers. unsubscribe / ping / set_format are never gated, so you can always clean up an existing subscription. The list is operational and can change without notice; treat FORBIDDEN as “this market is temporarily unavailable,” not a permanent state.