Errors
Every code the API returns, grouped by the area it comes from.
Failure format
A failed request returns the common failure envelope:
{
"result": false,
"code": 404,
"errorCode": "RESOURCE_005",
"message": "데이터를 찾을 수 없습니다."
}
Branch on errorCode. code repeats the HTTP status, and message is localized text that can change between
releases and languages - never match on it.
The license endpoints return {"code": number, "error": "ENUM_NAME"}. A failed lock or unlock on a web-office
endpoint, and any permission failure there, returns a plain-text body. A CSV import with any failing row returns a
text/csv file. An audit log export failure uses the envelope but omits errorCode. Check the
status code and Content-Type before parsing a failure as JSON.
The same errorCode can appear with more than one HTTP status, and different endpoints sometimes reuse a code for
related but distinct conditions. The tables below note where that happens.
Request and response
| Code | Status | Meaning |
|---|---|---|
REQUEST_001 | 400 | Request validation failed. message carries the list of fields that failed, not a fixed sentence |
REQUEST_006 | 403 | The API Key's tenant does not match the tenant of the request host |
RESPONSE_001 | 500 | Unexpected server-side failure |
AUTH_009 | 403 | The calling key did not pass the role or scope gate |
Authentication and API Keys
| Code | Status | Meaning |
|---|---|---|
API_KEY_001 | 404 | The key cannot be addressed - it does not exist, or it is outside the surface you called |
API_KEY_004 | 401 | Authentication failed - missing header, unknown value, deactivated or expired key, deactivated account, or wrong tenant domain |
API_KEY_006 | 400 | The target account does not belong to the tenant you named |
API_KEY_007 | 400 | A tenant must be specified for this target |
API_KEY_010 | 400 | Unsupported or disallowed scope combination |
API_KEY_011 | 400 | A super administrator key cannot be given a tenant |
API_KEY_012 | 403 | A key cannot be issued for a different account of the same role |
API_KEY_013 | 403 | A super administrator must use the super admin issue endpoint |
See Authentication for what each of these means in context.
Permissions and sharing
| Code | Status | Meaning |
|---|---|---|
PERMISSION_001 | 403 | The resource is not shared with you |
PERMISSION_002 | 403 | You do not have access to the resource |
PERMISSION_003 | 400 | View permission must stay enabled while any other permission is on |
SHARE_001 | 404 | The resource is not shared with the named user |
SHARE_004 | 404 | The share was not found |
SHARE_007 | 404 | No share link matches that token |
Resources, files, and folders
| Code | Status | Meaning |
|---|---|---|
RESOURCE_001 | 400, 404 | Delete failed, and on some endpoints, the resource was not found |
RESOURCE_005 | 404 | The resource was not found |
RESOURCE_009 | 400 | Restore from trash failed |
RESOURCE_015 | 400 | Not enough storage, or lock and unlock failed, depending on the endpoint |
RESOURCE_016 | 400 | Unlock failed; returned as plain text by the web-office endpoints |
QUOTA_003 | 400 | Not enough storage to create the document |
QUOTA_004 | 400 | Not enough storage available on the tenant |
RESOURCE_015 carries two meaningsOn the file and document endpoints it reports a storage shortfall. On the resource lock and unlock endpoints it reports a failed lock. Read it together with the endpoint you called.
Versions
| Code | Status | Meaning |
|---|---|---|
RESOURCE_VERSION_002 | 400 | Version delete failed |
RESOURCE_VERSION_003 | 404 | The version was not found |
RESOURCE_VERSION_005 | 500 | Unexpected failure while restoring a version |
Trash, starred, recent, and pinned folders
| Code | Status | Meaning |
|---|---|---|
TRASH_001 | 400 | Permanent delete failed |
TRASH_CLEAN_UP_001 | 400 | Emptying the trash failed |
STARRED_001 | 400 | Removing the star failed |
PINNED_FOLDER_001 | 400 | Removing the pin failed - it is not yours, or it is already gone |
PINNED_FOLDER_002 | 409 | That folder is already pinned |
PINNED_FOLDER_003 | 400 | At most three folders can be pinned |
Notifications
| Code | Status | Meaning |
|---|---|---|
NOTIFICATION_002 | 500 | Marking as read failed - the notification does not exist or is not yours |
NOTIFICATION_003 | 500 | Marking as unread failed - the notification does not exist or is not yours |
Accounts
| Code | Status | Meaning |
|---|---|---|
USER_001 | 400 | The password does not meet the required pattern |
USER_002 | 400 | The email address is malformed |
USER_004 | 409 | That account id is already in use |
USER_005 | 404 | The account was not found, or it belongs to another tenant |
USER_007 | 400 | Profile image upload failed |
USER_008 | 404 | No profile image is registered |
USER_009 | 400 | The supplied current password does not match |
USER_010 | 400 | The new password matches the previous one |
USER_011 | 403 | The default administrator and your own account cannot be deactivated |
USER_012 | 403 | The default administrator and your own account cannot be deleted |
USER_013 | 500 | Account creation failed - an external key asked for ADMIN, or the licensed seats are exhausted |
USER_014 | 400 | A quota cannot be set below current usage |
USER_015 | 400 | Profile image deletion failed |
USER_016 | 400 | Queueing the account for deletion failed |
USER_017 | 400 | Activation failed |
USER_018 | 400 | Deactivation failed |
USER_019 | 400 | The requested status filter value is not valid |
USER_022 | 400 | MFA reset failed, or the password reset token is not valid |
USER_023 | 400 | The password reset token has expired |
USER_025 | 404 | The account to update was not found |
USER_026 | 400 | A required field is missing on create |
USER_027 | 400 | Country code and phone number must be sent together or both omitted |
ADMIN_USER_001 | 400 | Restore failed - the account is not in the pending-delete state |
ADMIN_USER_002 | 400 | The requested accounts do not all match accounts actually pending deletion |
USER_022 carries two meaningsIt reports a failed MFA reset on the admin endpoints and an invalid password reset token on the user endpoints. The two never occur on the same endpoint.
USER_005 is returned for an account in another tenant as well as one that does not exist, so account existence is
not disclosed across tenants.
Tenants and domains
| Code | Status | Meaning |
|---|---|---|
TENANT_001 | 404 | The tenant was not found |
TENANT_006 | 409 | That domain is already in use |
TENANT_007 | 400 | The domain is not valid |
BASE_DOMAIN_001 | 404 | No base domain is configured, or the base domain seq you named does not exist |
BASE_DOMAIN_002 | 400 | The base domain is not valid |
BASE_DOMAIN_004 | 400 | The domain must end with the registered base domain |
Tenant settings
| Code | Status | Meaning |
|---|---|---|
SSO_PROTOCOL_001 | 400 | Unsupported SSO protocol |
SSO_PROTOCOL_002 | 400 | The protocol type and the configuration do not match |
ACCESS_002 | 400 | Invalid country code |
ACCESS_003 | 400 | Register at least one country or address before enabling the restriction |
ACCESS_004 | 400 | Invalid IP address or CIDR range |
BRANDING_001 | 404 | No branding configuration or custom image was found |
BRANDING_002 | 500 | Image conversion failed |
SMTP_CONFIG_001 | 404 | No SMTP configuration is registered |
SMTP_CONFIG_002 | 500 | The SMTP send failed; check the configuration |
SYSTEM_CONFIG_003 | 404 | The office configuration was not found |
SYSTEM_CONFIG_008 | 403 | Only a super administrator may change general settings in a multi-tenant deployment |
STORAGE_002 | 500 | Download failed |
STORAGE_006 | 404 | That storage key does not exist |
License
The license endpoints use a separate numeric scheme and return {"code": number, "error": "ENUM_NAME"}.
| Code | error | Meaning |
|---|---|---|
6999 | LICENSE | Unexpected failure while processing the license |
6998 | LICENSE_FILE_NOT_EXIST | No license is registered |
6997 | LICENSE_FILE_NOT_VALID_FORMAT | The license file format is not valid |
6996 | LICENSE_MANAGER_AUTHENTICATION_FAILED | License manager authentication failed |
6995 | LICENSE_FILE_EXPIRATION | The license has expired |
6994 | LICENSE_UNDER_LIMIT | Expiry is approaching; returned inside a successful status response |
6993 | LICENSE_EXCEED_LIMIT | The seat limit is exceeded; returned inside a successful status response |
4999 | DB | Reading the uploaded file failed |
6994 and 6993 are not HTTP errors. They appear as code inside a successful license status response - see
Admin.