2026-06-18 · Kalshi · 19 条相关讨论
What is going on with websockets!? 503 errors everywhere
What is going on with websockets!? 503 errors everywhere
my system is no longer successfully subscribing to orderbook WS since about 2 hours ago. Not sure if something changed in the behavior, currently troubleshooting. Manual test with `websocat` worked albeit possibly with different sequencing than before
my system is no longer successfully subscribing to orderbook WS since about 2 hours ago. Not sure if something changed in the behavior, currently troubleshooting. Manual test with `websocat` worked albeit possibly with different sequencing than before
Mine started yesterday
Mine started yesterday
Often it works once, but if the website disconnects from then on every retry is 503
Often it works once, but if the website disconnects from then on every retry is 503
Websocket not website
Websocket not website
I'm not seeing 503, just not establishing the feed
I'm not seeing 503, just not establishing the feed
I've been running all day with no issues - are you guys using the external-api or elections host? (i'm on external)
I've been running all day with no issues - are you guys using the external-api or elections host? (i'm on external)
external-api
external-api
Resolved for me after code changes. Seems like something changed with the websocket subscribe behavior, but I suppose I can't prove it. Unless I'm crazy, when subscribing to `orderbook_delta` for multiple tickers: Before: Kalshi’s ACK identified the market directly by echoing the ticker list. Now: Kalshi’s ACK may identify the request only indirectly, through the WebSocket command id; the ticker has to be inferred from the command the client sent.
Resolved for me after code changes. Seems like something changed with the websocket subscribe behavior, but I suppose I can't prove it. Unless I'm crazy, when subscribing to `orderbook_delta` for multiple tickers: Before: Kalshi’s ACK identified the market directly by echoing the ticker list. Now: Kalshi’s ACK may identify the request only indirectly, through the WebSocket command id; the ticker has to be inferred from the command the client sent.
Something seems to have changed with how WS sequence numbers work after this morning's update. An assertion keeps triggering on my side when I connect. My logging throws `IllegalStateException: expected sequence number 1 for id=3 channel=orderbook_delta but got 2`. I have disabled my assertion for now while I try to figure it out.
Something seems to have changed with how WS sequence numbers work after this morning's update. An assertion keeps triggering on my side when I connect. My logging throws `IllegalStateException: expected sequence number 1 for id=3 channel=orderbook_delta but got 2`. I have disabled my assertion for now while I try to figure it out.
any chance you're receiving and ignoring one of the newfangled error 28s with the correct seq no? i see it using seq 1 for that error (and starting snapshots at seq 2) when my initial ticker list contains at least 1 invalid ticker. when they're all valid tickers there's no error and the snapshots start with seq 1 like before
any chance you're receiving and ignoring one of the newfangled error 28s with the correct seq no? i see it using seq 1 for that error (and starting snapshots at seq 2) when my initial ticker list contains at least 1 invalid ticker. when they're all valid tickers there's no error and the snapshots start with seq 1 like before
Maybe? Definitely something changed this morning.
Maybe? Definitely something changed this morning.
I added more logging and will look for that error 28.
I added more logging and will look for that error 28.
yeah, something changed for me as well, seems like I receive an upstream error frame and my app goes into an error loop
yeah, something changed for me as well, seems like I receive an upstream error frame and my app goes into an error loop
Are you using `skip_ticker_ack`? https://docs.kalshi.com/changelog#feb-11-2026-2
Are you using `skip_ticker_ack`? https://docs.kalshi.com/changelog#feb-11-2026-2
getting alot of nonsense from the system, getting overloaded with frames, frames dropping, and since i use the CFBenchmark price.....im only recieving the CFBEnchmark every minute or so, not per second. and in spurts
getting alot of nonsense from the system, getting overloaded with frames, frames dropping, and since i use the CFBenchmark price.....im only recieving the CFBEnchmark every minute or so, not per second. and in spurts
[2026-06-18T10:28:56.188Z] [Kalshi WS] heartbeat alive stable=1m serverPing=1m framesInInterval=6493 approxPerSec=649 total=35377
[2026-06-18T10:28:56.188Z] [Kalshi WS] heartbeat alive stable=1m serverPing=1m framesInInterval=6493 approxPerSec=649 total=35377
Yes, I am definitely getting a 28 at first.
Yes, I am definitely getting a 28 at first.
moving my CFBenchmark Subscription to dedicated websocket, seems to be happier. still too many frames on my main websocket thread
moving my CFBenchmark Subscription to dedicated websocket, seems to be happier. still too many frames on my main websocket thread