# X_SUBSCRIPTION_LIMIT

## Means

socket, actor, tenant or node hit its subscription cap

## Typical cause

a component subscribing in a loop, or one client minting distinct `(query, input)` pairs — a `qid` derives from client-chosen input, so the node holds a matcher and a row window per value. The scope in the message says which ceiling refused

## Fix

the actor scope: raise `realtime.maxSubscriptionsPerActor` in `app.config.ts` (default 1,000). Otherwise raise `maxPerSocket` / `maxPerTenant` / `maxEntries` on `new LiveQueryRegistry({…})`, or `maxTopicsPerSocket` / `maxTopicsPerNode` on `new ChannelHub({…})` — none of those is an `app.config.ts` field

[Realtime](/error-codes#realtime)
