Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions