# X_FRAME_RATE_LIMIT

## Means

one socket sent frames faster than this node will route them

## Typical cause

the accept budget spends a token per *upgrade*, so an open socket was unbounded: one authenticated client could drive a database read, a shared-store presence write and a fleet-wide publish per frame. Every socket now carries its own token bucket (64/s, burst 256), checked at the top of the frame router before the frame touches anything — including before it renews the idle window. A client fault: it never pages anyone

## Fix

batch subscribes into one frame per subscription and retry after the delay, or raise `maxFramesPerSecond` where `syncNode()` is called

[Realtime](/error-codes#realtime)
