开发者文档目前仅提供英文版。
Error codes
Every ErrorCode value of the REST API with its HTTP status, common reason values, and where to find OAuth and SSO errors.
Every non-2xx REST response carries an ApiError { code, message, field?, reason?, used?, limit? } body. Branch on code and reason; message is for logs only. How to handle errors in a bot: Errors and limits.
OAuth protocol errors (invalid_grant, invalid_client and others) use the RFC 6749 format — see OAuth: errors. SSO sign-in errors: SSO: troubleshooting.
ErrorCode
code | HTTP | Meaning |
|---|---|---|
ERROR_CODE_INTERNAL | 500 | an internal server error |
ERROR_CODE_BAD_REQUEST | 400 | a malformed body or request parameters |
ERROR_CODE_VALIDATION | 422 | a well-formed request with an invalid field value; field says which |
ERROR_CODE_UNAUTHENTICATED | 401 | no token, or it is wrong, expired or revoked |
ERROR_CODE_FORBIDDEN | 403 | authenticated, but a permission is missing; reason: "BOT_NOT_ALLOWED" — a route for people only |
ERROR_CODE_NOT_FOUND | 404 | no such object — or it is hidden from the caller |
ERROR_CODE_CONFLICT | 409 | a conflict: uniqueness, a limit, a state; details in reason |
ERROR_CODE_RATE_LIMITED | 429 | a rate limit; the Retry-After header says how many seconds to wait |
ERROR_CODE_INVALID_CREDENTIALS | 401 | sign-in failed |
ERROR_CODE_INVALID_REFRESH_TOKEN | 401 | the refresh token is unknown, expired or reused |
ERROR_CODE_REGISTRATION_CLOSED | 403 | registration is by invitation only |
ERROR_CODE_INVITE_INVALID | 404 / 410 | the invite is unknown, expired or used up |
ERROR_CODE_FILE_TOO_LARGE | 413 | the file is too large |
ERROR_CODE_FILE_QUOTA_EXCEEDED | 413 | the workspace storage quota is used up (used / limit in bytes) |
ERROR_CODE_PAYLOAD_TOO_LARGE | 413 | the request body is too large |
ERROR_CODE_UNAVAILABLE | 503 | a temporary failure — retry later |
ERROR_CODE_ROOM_FULL | 409 | the voice room is full (used / limit) |
ERROR_CODE_WORKSPACE_LIMIT | 409 | the per-owner workspace limit is reached |
ERROR_CODE_STORAGE_FULL | 507 | the whole server's storage is full |
ERROR_CODE_EMAIL_NOT_VERIFIED | 403 | the account's email is not verified |
ERROR_CODE_CODE_INVALID · ERROR_CODE_CODE_EXPIRED | 422 | a wrong or expired email code |
ERROR_CODE_NOT_PAIRED | 409 | recording transcription isn't connected in the workspace |
ERROR_CODE_ALREADY_RECORDING | 409 | the room is already being recorded |
ERROR_CODE_RECORDING_LIMIT | 409 | the server runs its maximum of concurrent recordings |
ERROR_CODE_WORKSPACE_SUSPENDED | 403 | the workspace is suspended: writing is refused, reading works |
ERROR_CODE_BANNED | 403 | the caller is banned from the workspace |
ERROR_CODE_INVITE_EMAIL_MISMATCH | 403 | the invitation was sent to another address |
ERROR_CODE_FILE_GONE · ERROR_CODE_ALREADY_UPLOADED | 409 | a recording can't be re-uploaded |
ERROR_CODE_BOT_BLOCKED | 403 | the person blocked the bot |
ERROR_CODE_BUSY · ERROR_CODE_IN_CALL · ERROR_CODE_CALL_NOT_ACTIVE | 409 | one-to-one calls (not for bots) |
ERROR_CODE_SESSION_REVOKED | 401 | a person's session was ended; reason says why |
ERROR_CODE_EVENT_OVER | 410 | a meeting answer link after the meeting ended |
ERROR_CODE_INVITE_NOT_YET_VALID | 409 | a meeting's guest link isn't valid yet |
ERROR_CODE_NO_COMMON_HOURS | 409 | people's working hours don't overlap in the search window |
ERROR_CODE_TEMP_ROOM_LIMIT | 409 | the temporary room cap (20 per workspace, or 5 per creator with reason: "PER_USER") |
ERROR_CODE_ROOM_ARCHIVED | 410 | an archived temporary room: reading works, writing doesn't |
ERROR_CODE_SIP_DISABLED | 409 | telephony is off in the workspace |
ERROR_CODE_SIP_CALL_ACTIVE | 409 | the room already has a phone call |
ERROR_CODE_SIP_NUMBER_NOT_ALLOWED | 422 | the number is outside the allowed prefixes (field: "number") |
ERROR_CODE_SIP_RATE_LIMITED | 429 | 20 calls per hour per workspace |
ERROR_CODE_SIP_PROVIDER_ERROR | 502 | the telephony provider refused the settings |
ERROR_CODE_SSO_REQUIRED | 403 | the workspace requires SSO sign-in |
ERROR_CODE_IDENTITY_SCOPE_DENIED | 403 | the session doesn't grant access to this workspace |
ERROR_CODE_DIRECTORY_ACCESS_DENIED | 403 | the directory has cut the member's access |
ERROR_CODE_RECOVERY_ONLY | 403 | a recovery session: only SSO recovery actions are allowed |
ERROR_CODE_IDENTITY_CONFIG_CHANGED | 409 | the identity settings changed — reload and retry |
ERROR_CODE_IDENTITY_NOT_LINKED | 409 | the account isn't linked to a corporate identity |
ERROR_CODE_IDENTITY_DEPENDENCY_UNAVAILABLE | 503 | the SSO provider or the directory is unreachable |
ERROR_CODE_RECENT_AUTH_REQUIRED | 403 | reauthentication needed — see SSO: reauthentication |
ERROR_CODE_USERNAME_TAKEN | 409 | the nickname is taken |
ERROR_CODE_USERNAME_INVALID | 422 | an invalid or reserved nickname |
Common reason values
reason | With code | Meaning |
|---|---|---|
BOT_NOT_ALLOWED | FORBIDDEN | a route for people only |
PLAN_LIMIT | CONFLICT, ROOM_FULL, FILE_QUOTA_EXCEEDED | a plan limit; used / limit |
PLAN_LIMITS_EXCEEDED | CONFLICT | a plan change was refused: the workspace uses more than the new plan allows |
REACTION_LIMIT | CONFLICT | at most 3 different reactions per member per message |
FEATURE_DISABLED | CONFLICT | a board feature is off; field names the field |
CHECKLIST_LIMIT · CHECKLIST_ITEM_LIMIT · BOARD_CATEGORY_LIMIT | CONFLICT | 10 checklists per task · 100 items per checklist · 50 board categories |
TASK_MILESTONE_LIMIT · TASK_MILESTONE_AUTO | CONFLICT | 20 milestones per task · the server computes the milestone's completion |
KEYBOARD_STALE · BUTTON_UNAVAILABLE | CONFLICT | the message keyboard changed · the button is unavailable |
FORM_CHANGED · NONCE_CONFLICT · FORM_TARGET_UNAVAILABLE | CONFLICT | the form changed · the nonce was used for other content · the form's status was removed |
OWNER_ONLY | FORBIDDEN | the workspace owner only |
MESSAGE_NOT_EDITABLE · NOT_FORWARDABLE | VALIDATION | a forwarded copy can't be edited · this message can't be forwarded |
TASK_NOTIFY_BOT_UNAVAILABLE | VALIDATION | the bot chosen for notifications is unavailable |
IDENTITY_NOT_CONFIGURED | CONFLICT | identity (SSO, directory, OAuth provider) isn't configured on the server |
ADMISSION_DECLINED · ADMISSION_QUEUE_FULL | RATE_LIMITED | the guest was declined recently · 50 guests are already waiting |