Error messages
Match on the prefix before the first colon. Cinderous relays also put a second word — a token such as quota or ceiling — after the prefix (blocked: quota: …); prefix and token are stable, the text after them is a human-readable explanation and may change.
#Refused connections
The relay accepts the WebSocket, sends one NOTICE, and closes with code 1008. The close reason also carries the documentation link, because browsers do not expose the HTTP status of a failed handshake.
| NOTICE starts with | Cause | Fix |
|---|
unknown relay path | The path is not /app/<id> or a Cinderous path | Connect to wss://<relay>/app/<your-app-id> |
invalid app lane | The id breaks the format | Use 1–64 characters of a-z 0-9 . _ - |
rate-limited: too many new connections | More than 30 new lane connections per minute from your IP | Back off before reconnecting |
rate-limited: (during a session) | More than 240 messages per minute on one connection | Stop re-opening subscriptions in a loop |
#Subscriptions (CLOSED)
| Prefix | Cause |
|---|
restricted: scope: | A filter has no scope, or uses #p for someone else, or uses #p without AUTH — see Subscriptions |
rate-limited: subscriptions: | More than 16 open subscriptions on the connection |
error: resubscribe: | The relay restarted and lost the subscription — send the same REQ again |
invalid: too-large: | The subscriptions on this connection exceed 512 KiB — use fewer or smaller filters |
#Events (OK false)
| Prefix | Cause |
|---|
invalid: | Bad signature (bad-signature), created_at outside the accepted window (clock-skew), or the event's own expiration has passed (expired) |
duplicate: | Sent with OK true: the relay already has this event (same id within the last hour). Treat it as accepted |
blocked: | Too many tags (too-many-tags), too many p tags (too-many-recipients), too large (too-large); for addressable events: older than the stored one (stale), over your per-author quota (quota), or the relay's storage is full (ceiling — try another relay or later) |
rate-limited: events: | More than 120 events per minute for this key |
pow: difficulty: | Not enough proof of work (only if it is enabled) |
auth-failed: | The AUTH event was invalid, expired, or named a different relay |