Several Futures WebSocket stream types accept subscriptions and return {"result":null,"id":99} (successful ACK) but never send any data frames. This has been ongoing for approximately 6 hours as of this report.
Affected streams (zero data after successful subscribe):
btcusdt@aggTrade
btcusdt@kline_1m
btcusdt@markPrice@1s
!forceOrder@arr
Unaffected streams (working normally):
btcusdt@depth20@500ms
btcusdt@trade
Reproduction steps:
pythonimport asyncio, json, websockets
async def test():
async with websockets.connect("wss://fstream.binance.com/ws") as ws:
# This stream works:
await ws.send(json.dumps({"method": "SUBSCRIBE", "params": ["btcusdt@trade"], "id": 1}))
print(await asyncio.wait_for(ws.recv(), timeout=5)) # ACK
print(await asyncio.wait_for(ws.recv(), timeout=5)) # Data frame received
# This stream does NOT work:
await ws.send(json.dumps({"method": "SUBSCRIBE", "params": ["btcusdt@aggTrade"], "id": 2}))
print(await asyncio.wait_for(ws.recv(), timeout=5)) # ACK received
print(await asyncio.wait_for(ws.recv(), timeout=10)) # TimeoutError — no data
asyncio.run(test())
Environment:
Endpoint: wss://fstream.binance.com/ws
Location: Tokyo (Vultr VPS)
Tested via URL-based (/ws/), combined (/stream?streams=...), and method-based SUBSCRIBE — all behave identically
websockets Python library, but the issue is server-side — the connection and subscription succeed, the server simply never sends data frames for the affected stream types
Impact: Any application relying on aggTrade, kline, markPrice, or forceOrder streams via Futures WebSocket is silently receiving no data despite successful subscription. There is no error message or disconnect — the connection remains alive, making this difficult to detect without explicit data-frame-level monitoring.
Notes:
The @trade stream (non-aggregated) works for the same symbols where @aggTrade does not
The @depth20 stream works normally
This appears to be a server-side regression, not a client issue
Several Futures WebSocket stream types accept subscriptions and return {"result":null,"id":99} (successful ACK) but never send any data frames. This has been ongoing for approximately 6 hours as of this report.
Affected streams (zero data after successful subscribe):
btcusdt@aggTrade
btcusdt@kline_1m
btcusdt@markPrice@1s
!forceOrder@arr
Unaffected streams (working normally):
btcusdt@depth20@500ms
btcusdt@trade
Reproduction steps:
pythonimport asyncio, json, websockets
async def test():
async with websockets.connect("wss://fstream.binance.com/ws") as ws:
# This stream works:
await ws.send(json.dumps({"method": "SUBSCRIBE", "params": ["btcusdt@trade"], "id": 1}))
print(await asyncio.wait_for(ws.recv(), timeout=5)) # ACK
print(await asyncio.wait_for(ws.recv(), timeout=5)) # Data frame received
asyncio.run(test())
Environment:
Endpoint: wss://fstream.binance.com/ws
Location: Tokyo (Vultr VPS)
Tested via URL-based (/ws/), combined (/stream?streams=...), and method-based SUBSCRIBE — all behave identically
websockets Python library, but the issue is server-side — the connection and subscription succeed, the server simply never sends data frames for the affected stream types
Impact: Any application relying on aggTrade, kline, markPrice, or forceOrder streams via Futures WebSocket is silently receiving no data despite successful subscription. There is no error message or disconnect — the connection remains alive, making this difficult to detect without explicit data-frame-level monitoring.
Notes:
The @trade stream (non-aggregated) works for the same symbols where @aggTrade does not
The @depth20 stream works normally
This appears to be a server-side regression, not a client issue