Skip to content

Futures WebSocket: Multiple stream types return successful SUBSCRIBE ACK but send zero data frames #526

@uibeka

Description

@uibeka

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions