Skip to content
OpenPulseDocs

Reference

Errors and limits

Every error the wire returns, what it means and what to do.

StatuserrorMeansDo
400bad requestThe body or an event is not valid JSON of the right shapeFix the request
401unauthorizedNo token, an expired one, or one we do not recogniseRenew the token (the SDK does)
402free_limit_reachedHobby past 110% of an allowance, or Pro at its spend capUpgrade or raise the cap; reads keep working
403forbiddenThe token is valid but not for this realm, tenant or actionCheck the realm prefix and the token’s capabilities
404stream not foundThe stream does not exist or was deletedCreate it with PUT, or post with a preset
429rate_limitedThe realm posted faster than its plan’s fair-use rateWait Retry-After seconds and resend (the SDK does)

On the socket#

The socket reports the same errors as { "op": "err", "error": "…" } frames for the op that failed. When the bearer expires without being renewed, the relay closes the socket with code 4401; reconnect with a new token.

Limits#

LimitValue
Event size for billing1 message per started 64 KiB
Presence updateUp to 4 KiB counts a tenth of a message
One AI answer10,000 events or 10 MiB, then it counts again
Fair use per realmHobby 1,000 events a second, Pro 10,000 (two-second burst)
Read pageUp to 500 events; long-poll waits up to 30 s
Seat lifetime30 to 3,600 seconds, default 900
Subscriptions per connection4,096