Sblurp

Errors and rate limits

Calls fail with a Connect error code and a plain message, such as only admins can create channels. Show the message to people; branch on the code.

Error codes

Code HTTP Means
invalid_argument 400 A field is missing, too long or malformed.
unauthenticated 401 No token, or the token is bad, expired, for another server or from an issuer the server does not trust. Get a fresh token.
permission_denied 403 You may not do this. Also: not joined yet, a bad invite code, banned, or a plugin turned you away.
not_found 404 No such thing, or a channel you may not see.
already_exists 409 The name is taken.
failed_precondition 400 Not possible in this state, such as JoinChannel in roles mode or deleting a role that limits a channel.
resource_exhausted 429 Too fast, or a stream fell too far behind.
unavailable 503 The server is busy. Try again.

A gRPC client sees the same codes in gRPC form.

Plain HTTP errors

Uploads, files and emoji answer {"error": "..."} with an HTTP status: 400, 401, 403 or 413. sblurp.chat's OAuth endpoints answer {"error": "...", "error_description": "..."}. See Sign-in and tokens.

Rate limits

Who Limit
People 5 messages per second, burst 10.
Bots -bot-rate messages per second and -bot-burst. No limit by default.
Subscribe A stream more than 512 events behind is dropped.

Over the limit, SendMessage returns resource_exhausted with you are sending messages too fast. Wait and send again.

Size limits

See the table of built-in limits in Configuration.

Tools and agents can read every call and type from schema.json.