Skip to content
CalabDocs

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

codeHTTPMeaning
ERROR_CODE_INTERNAL500an internal server error
ERROR_CODE_BAD_REQUEST400a malformed body or request parameters
ERROR_CODE_VALIDATION422a well-formed request with an invalid field value; field says which
ERROR_CODE_UNAUTHENTICATED401no token, or it is wrong, expired or revoked
ERROR_CODE_FORBIDDEN403authenticated, but a permission is missing; reason: "BOT_NOT_ALLOWED" — a route for people only
ERROR_CODE_NOT_FOUND404no such object — or it is hidden from the caller
ERROR_CODE_CONFLICT409a conflict: uniqueness, a limit, a state; details in reason
ERROR_CODE_RATE_LIMITED429a rate limit; the Retry-After header says how many seconds to wait
ERROR_CODE_INVALID_CREDENTIALS401sign-in failed
ERROR_CODE_INVALID_REFRESH_TOKEN401the refresh token is unknown, expired or reused
ERROR_CODE_REGISTRATION_CLOSED403registration is by invitation only
ERROR_CODE_INVITE_INVALID404 / 410the invite is unknown, expired or used up
ERROR_CODE_FILE_TOO_LARGE413the file is too large
ERROR_CODE_FILE_QUOTA_EXCEEDED413the workspace storage quota is used up (used / limit in bytes)
ERROR_CODE_PAYLOAD_TOO_LARGE413the request body is too large
ERROR_CODE_UNAVAILABLE503a temporary failure — retry later
ERROR_CODE_ROOM_FULL409the voice room is full (used / limit)
ERROR_CODE_WORKSPACE_LIMIT409the per-owner workspace limit is reached
ERROR_CODE_STORAGE_FULL507the whole server's storage is full
ERROR_CODE_EMAIL_NOT_VERIFIED403the account's email is not verified
ERROR_CODE_CODE_INVALID · ERROR_CODE_CODE_EXPIRED422a wrong or expired email code
ERROR_CODE_NOT_PAIRED409recording transcription isn't connected in the workspace
ERROR_CODE_ALREADY_RECORDING409the room is already being recorded
ERROR_CODE_RECORDING_LIMIT409the server runs its maximum of concurrent recordings
ERROR_CODE_WORKSPACE_SUSPENDED403the workspace is suspended: writing is refused, reading works
ERROR_CODE_BANNED403the caller is banned from the workspace
ERROR_CODE_INVITE_EMAIL_MISMATCH403the invitation was sent to another address
ERROR_CODE_FILE_GONE · ERROR_CODE_ALREADY_UPLOADED409a recording can't be re-uploaded
ERROR_CODE_BOT_BLOCKED403the person blocked the bot
ERROR_CODE_BUSY · ERROR_CODE_IN_CALL · ERROR_CODE_CALL_NOT_ACTIVE409one-to-one calls (not for bots)
ERROR_CODE_SESSION_REVOKED401a person's session was ended; reason says why
ERROR_CODE_EVENT_OVER410a meeting answer link after the meeting ended
ERROR_CODE_INVITE_NOT_YET_VALID409a meeting's guest link isn't valid yet
ERROR_CODE_NO_COMMON_HOURS409people's working hours don't overlap in the search window
ERROR_CODE_TEMP_ROOM_LIMIT409the temporary room cap (20 per workspace, or 5 per creator with reason: "PER_USER")
ERROR_CODE_ROOM_ARCHIVED410an archived temporary room: reading works, writing doesn't
ERROR_CODE_SIP_DISABLED409telephony is off in the workspace
ERROR_CODE_SIP_CALL_ACTIVE409the room already has a phone call
ERROR_CODE_SIP_NUMBER_NOT_ALLOWED422the number is outside the allowed prefixes (field: "number")
ERROR_CODE_SIP_RATE_LIMITED42920 calls per hour per workspace
ERROR_CODE_SIP_PROVIDER_ERROR502the telephony provider refused the settings
ERROR_CODE_SSO_REQUIRED403the workspace requires SSO sign-in
ERROR_CODE_IDENTITY_SCOPE_DENIED403the session doesn't grant access to this workspace
ERROR_CODE_DIRECTORY_ACCESS_DENIED403the directory has cut the member's access
ERROR_CODE_RECOVERY_ONLY403a recovery session: only SSO recovery actions are allowed
ERROR_CODE_IDENTITY_CONFIG_CHANGED409the identity settings changed — reload and retry
ERROR_CODE_IDENTITY_NOT_LINKED409the account isn't linked to a corporate identity
ERROR_CODE_IDENTITY_DEPENDENCY_UNAVAILABLE503the SSO provider or the directory is unreachable
ERROR_CODE_RECENT_AUTH_REQUIRED403reauthentication needed — see SSO: reauthentication
ERROR_CODE_USERNAME_TAKEN409the nickname is taken
ERROR_CODE_USERNAME_INVALID422an invalid or reserved nickname

Common reason values

reasonWith codeMeaning
BOT_NOT_ALLOWEDFORBIDDENa route for people only
PLAN_LIMITCONFLICT, ROOM_FULL, FILE_QUOTA_EXCEEDEDa plan limit; used / limit
PLAN_LIMITS_EXCEEDEDCONFLICTa plan change was refused: the workspace uses more than the new plan allows
REACTION_LIMITCONFLICTat most 3 different reactions per member per message
FEATURE_DISABLEDCONFLICTa board feature is off; field names the field
CHECKLIST_LIMIT · CHECKLIST_ITEM_LIMIT · BOARD_CATEGORY_LIMITCONFLICT10 checklists per task · 100 items per checklist · 50 board categories
TASK_MILESTONE_LIMIT · TASK_MILESTONE_AUTOCONFLICT20 milestones per task · the server computes the milestone's completion
KEYBOARD_STALE · BUTTON_UNAVAILABLECONFLICTthe message keyboard changed · the button is unavailable
FORM_CHANGED · NONCE_CONFLICT · FORM_TARGET_UNAVAILABLECONFLICTthe form changed · the nonce was used for other content · the form's status was removed
OWNER_ONLYFORBIDDENthe workspace owner only
MESSAGE_NOT_EDITABLE · NOT_FORWARDABLEVALIDATIONa forwarded copy can't be edited · this message can't be forwarded
TASK_NOTIFY_BOT_UNAVAILABLEVALIDATIONthe bot chosen for notifications is unavailable
IDENTITY_NOT_CONFIGUREDCONFLICTidentity (SSO, directory, OAuth provider) isn't configured on the server
ADMISSION_DECLINED · ADMISSION_QUEUE_FULLRATE_LIMITEDthe guest was declined recently · 50 guests are already waiting