1) Login Errors
“first message must be login”
Send a validlogin as your first frame.
login_failed
- Missing/invalid
apiKey - No channels allowed or requested
- Bookmakers not allowed
too_many_connections (4003)
- Max connections reached for your key group (max: 5)
- Shard or reduce concurrent connects
- Contact support to raise the limit
2) Connected but Receiving Nothing
- Not subscribed to expected channels? Check
login_ok.channels - Filters too narrow? e.g. empty
sportIdsor invalidbookmakers - Bookmaker-gated filters:
- If the upstream message has no matching bookmaker keys, it’s filtered out
3) Binary Decoding Problems
WithreceiveType: "binary":
- Data frames: MessagePack
- Control frames: JSON
4) snapshot_required During Resume
Means server could not safely replay. Possible reasons:
server_restartedresume_window_exceededclient_backpressure
Even short disconnects can exceed buffer if your lastSeenId is too old.
Recovery:
- Re-fetch snapshot via REST
- Reset your
lastSeenId - Continue streaming
5) Disconnects Under Load (Backpressure)
Symptoms:- Close code
4002 - Skipped
oddsupdates
- Use
binary - Push parsing to async queue
- Filter by
sportIds,bookmakers
6) Gaps in entryId
entryId is a cursor — not a delivery ledger. Gaps expected due to:
- Upstream skips
- Gateway coalescing
- Reconnect without replay