Error Responses
HTTP Status Codes
When you call the Platform API, it will respond with standard HTTP status codes, categorized as follows:
Status Code | Description |
---|---|
2xx | The request succeeded |
4xx | Client error responses |
5xx | Server error responses |
tip
Check the Error Code table to understand the relationship between HTTP status codes and error codes within the error body.
Error Body
When an API request results in an error, a standardized response format will be provided, structured as below:
{
"code": 3,
"message": "validation error, field 'resource_id': value is required",
"details": [
{
"reason": "ERROR_REASON_INVALID_ARGUMENT",
"domain": "bv.cms.v1",
"metadata": {}
}
]
}
The properties in the response are described as follows:
Field | Type | Description |
---|---|---|
code | integer | This is a standardized error code, which software can use to determine how to handle the error with. |
message | string | This human-readable explanation of the error provides context on what went wrong. |
details | object[] | This is an array of additional information objects, which provides more context about the error. |
info
In case of multiple error details, always fetch the last one as it's the error information closest to the caller.
Please refer to the following sections for the error code
and details
information.
Error Code
Code | Name | HTTP Status Code | Description |
---|---|---|---|
3 | InvalidArgument | 400 | InvalidArgument indicates client specified an invalid argument. Note that this differs from FailedPrecondition. It indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). |
9 | FailedPrecondition | 400 | FailedPrecondition indicates operation was rejected because the system is not in a state required for the operation's execution. |
16 | Unauthenticated | 401 | Unauthenticated indicates the request does not have valid authentication credentials for the operation. |
5 | NotFound | 404 | NotFound means some requested resource was not found. |
7 | PermissionDenied | 403 | PermissionDenied indicates the caller does not have permission to execute the specified operation. |
6 | AlreadyExists | 409 | AlreadyExists means an attempt to create an resource failed because one already exists. |
10 | Aborted | 409 | Aborted indicates the operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc. |
8 | ResourceExhausted | 429 | ResourceExhausted indicates some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. |
13 | Internal | 500 | Internal errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken. |
2 | Unknown | 500 | Unknown server error. Typically a server bug. |
14 | Unavailable | 503 | Unavailable indicates the service is currently unavailable. This is a most likely a transient condition and may be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. |
4 | DeadlineExceeded | 504 | DeadlineExceeded means operation expired before completion. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. |
Error Detail
The error detail object describes the cause of the error with structured details.
Field | Type | Description |
---|---|---|
reason | string | The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. |
domain | string | The logical grouping to which the reason belongs. |
metadata | object | Additional structured details about this error. |
Please refer to the next section for the error reason
and domain
information.
Error Reason
Common Reasons
Reason | Description |
---|---|
ERROR_REASON_UNAUTHENTICATED | Same as error code Unauthenticated |
ERROR_REASON_INVALID_ARGUMENT | Same as error code InvalidArgument |
ERROR_REASON_NOT_FOUND | Same as error code NotFound |
ERROR_REASON_ALREADY_EXISTS , ERROR_REASON_EXISTS | Same as error code AlreadyExists |
ERROR_REASON_DEADLINE_EXCEEDED | Same as error code DeadlineExceeded |
ERROR_REASON_PERMISSION_DENIED | Same as error code PermissionDenied |
ERROR_REASON_INTERNAL , ERROR_REASON_INTERNAL_ERROR | Same as error code Internal |
ERROR_REASON_UNAVAILABLE | Same as error code Unavailable |
ERROR_REASON_ABORTED | Same as error code Aborted |
ERROR_REASON_FAILED_PRECONDITION | Same as error code FailedPrecondition |
ERROR_REASON_RESOURCE_EXHAUSTED | Same as error code ResourceExhausted |
ERROR_REASON_UNKNOWN | Same as error code Unknown |
Domain bv.cms.v1
Reason | Description |
---|---|
ERROR_REASON_NOT_AUTHORIZE | Not authorized |
ERROR_REASON_IN_USE | Resource is in use |
ERROR_REASON_NO_PERMISSION_ACCESS | No permission to access |
ERROR_REASON_FILE_NOT_EXIST | File does not exist |
ERROR_REASON_FILE_SIZE_EXCEEDED | File size has been exceeded |
ERROR_REASON_GET_LOCK_ERROR | Error acquiring lock |
ERROR_REASON_CHANNEL_ERROR | Channel error |
ERROR_REASON_ENCODING_ERROR | Encoding error |
ERROR_REASON_ORGANIZATION_HAS_BEEN_DELETED | Organization has been deleted |
ERROR_REASON_CLOUD_STORAGE_FILE_DOWNLOAD_DENIED | Cloud storage file download denied |
ERROR_REASON_CONTENT_PERMISSION_DENIED | Content permission denied |
ERROR_REASON_CONTENT_PERMISSION_INVALID | Content permission is invalid |
ERROR_REASON_ACTION_NOT_ALLOWED | Action not allowed |
ERROR_REASON_SCOPE_INSUFFICIENT | Insufficient scope |
ERROR_REASON_QUOTA_LIVE_CONCURRENT_LIMIT_EXCEEDED | Live concurrent quota limit exceeded |
ERROR_REASON_QUOTA_LIVE_ULL_NOT_ALLOWED | Live ULL not allowed under quota |
ERROR_REASON_QUOTA_LIVE_MINUTE_LIMIT_EXCEEDED | Live minute quota limit exceeded |
ERROR_REASON_QUOTA_LIBRARY_STORAGE_LIMIT_EXCEEDED | Library storage quota limit exceeded |
ERROR_REASON_QUOTA_VOD_STORAGE_LIMIT_EXCEEDED | VOD storage quota limit exceeded |
ERROR_REASON_QUOTA_STT_MINUTE_LIMIT_EXCEEDED | STT minute quota limit exceeded |
ERROR_REASON_QUOTA_MEETING_NOT_ALLOWED | Meeting not allowed under quota |
ERROR_REASON_QUOTA_INSTANT_ENCODING_NOT_ALLOWED | Instant encoding not allowed under quota |
ERROR_REASON_QUOTA_INSTANT_ENCODING_KKBOX_NOT_ALLOWED | Instant encoding with KKBOX not allowed under quota |
ERROR_REASON_QUOTA_BYO_CDN_SETTING_LIMIT_EXCEEDED | BYO CDN setting quota limit exceeded |
ERROR_REASON_QUOTA_BYO_CDN_CF_NOT_ALLOWED | BYO CDN Cloudflare not allowed under quota |
ERROR_REASON_QUOTA_CLOUD_STORAGE_S3_INPUT_NOT_ALLOWED | Cloud storage S3 input not allowed under quota |
ERROR_REASON_QUOTA_CLOUD_STORAGE_S3_OUTPUT_NOT_ALLOWED | Cloud storage S3 output not allowed under quota |
ERROR_REASON_VOD_ENCODING_CREATE_LEGACY_NOT_ALLOWED | VOD legacy encoding creation not allowed |
ERROR_REASON_MULTI_VOD_ENCODINGS_NOT_ALLOWED | Multiple VOD encodings not allowed |
ERROR_REASON_VOD_ENCODING_IN_PROGRESS | VOD encoding is in progress |
ERROR_REASON_STT_IN_PROGRESS | STT is in progress |
Domain bv.playback.v1
Reason | Description |
---|---|
ERROR_REASON_RESOURCE_NOT_FOUND | Resource not found |
ERROR_REASON_LICENSE_INVALID | License is invalid |
ERROR_REASON_TOKEN_INVALID | Token is invalid |
ERROR_REASON_EXTERNAL_ULL_FORBIDDEN | External ULL forbidden |
ERROR_REASON_UNAUTHORIZED_TO_PLAY | Unauthorized to play |
ERROR_REASON_OVER_DEVICE_LIMIT | Over device limit |
ERROR_REASON_PLAYBACK_SESSION_EXPIRED | Playback session expired |
ERROR_REASON_DOMAIN_INVALID | Domain is invalid |
ERROR_REASON_RETRY_LATER | Please retry later |
ERROR_REASON_TOKEN_EXPIRED | Token has expired |
Domain bv.aisk.v1
Reason | Description |
---|---|
ERROR_REASON_SOURCE_REQUIRES_IN_INGESTING_STATUS | Source requires ingesting status |
ERROR_REASON_SOURCE_REQUIRES_IN_READY_STATUS | Source requires ready status |
ERROR_REASON_SOURCE_REQUIRES_A_WEBSITE_TYPE | Source requires a website type |
ERROR_REASON_TOKEN_INVALID | Token is invalid |
ERROR_REASON_SOURCE_NOT_A_GROUP_SOURCE | Source is not a group source |
ERROR_REASON_ORGANIZATION_DEACTIVATED | Organization is deactivated |
ERROR_REASON_INPUT_EXCEED_LENGTH_LIMIT | Input exceeds length limit |
ERROR_REASON_DOMAIN_INVALID | Domain is invalid |
ERROR_REASON_PROMPT_CONTENT_FILTER | Prompt content filtered |
ERROR_REASON_PROMPT_THROTTLING | Prompt throttling occurred |
ERROR_REASON_PROMPT_OUT_OF_QUOTA | Prompt is out of quota |
ERROR_REASON_QUOTA_CHATBOT_COUNT_LIMIT_EXCEEDED | Chatbot count limit exceeded |
Domain bv.chatroom.v1
Reason | Description |
---|---|
ERROR_REASON_CHATROOM_INACTIVE | Chatroom is inactive |
ERROR_REASON_TOKEN_INVALID | Token is invalid |
ERROR_REASON_CHAT_BIND_DICTIONARY_LIMIT_EXCEEDED | Chat bind dictionary limit exceeded |
ERROR_REASON_DICTIONARY_PATTERNS_LIMIT_EXCEEDED | Dictionary patterns limit exceeded |
ERROR_REASON_FAILED_PRECONDITION | Failed precondition |
ERROR_REASON_ORGANIZATION_NOT_ACTIVATE | Organization is not activated |
ERROR_REASON_MAX_DICTIONARIES_PER_ORG_LIMIT_EXCEEDED | Max dictionaries per organization limit exceeded |
ERROR_REASON_MAX_LENGTH_OF_PATTERN_TEXT_LIMIT_EXCEEDED | Max length of pattern text limit exceeded |
ERROR_REASON_INVALID_SYMBOLS_CONTAINS_IN_PATTERN_TEXT | Invalid symbols contained in pattern text |
ERROR_REASON_MAX_STICKER_PACKS_PER_ORG_LIMIT_EXCEEDED | Max sticker packs per organization limit exceeded |
ERROR_REASON_MAX_STICKERS_PER_STICKER_PACK_LIMIT_EXCEEDED | Max stickers per sticker pack limit exceeded |
Domain bv.org.v1
Reason | Description |
---|---|
ERROR_REASON_TOKEN_INVALID | Token is invalid |
ERROR_REASON_NOT_AUTHORIZE | Not authorized |
ERROR_REASON_CONFLICT | Conflict occurred |
ERROR_REASON_HAS_APPENDED_SUB_ORGS | Has appended sub-organizations |
ERROR_REASON_PERMISSION_DENIED | Permission denied |
ERROR_REASON_USER_NOT_IN_ORG | User is not in the organization |
Domain bv.account.v1
Reason | Description |
---|---|
ERROR_REASON_ACCOUNT_NOT_CREATED | Account has not been created |
ERROR_REASON_TOKEN_INVALID | Token is invalid |
ERROR_REASON_TOKEN_EXPIRE | Token has expired |
ERROR_REASON_VERIFY_CODE_EXPIRE | Verification code has expired |
ERROR_REASON_VERIFY_CODE_MISMATCH | Verification code does not match |
ERROR_REASON_NOT_CONFIRM | Action has not been confirmed |
ERROR_REASON_NOT_AUTHORIZE | Not authorized |
ERROR_REASON_TOO_MANY_REQUESTS | Too many requests |
ERROR_REASON_INVITE_NOT_FOUND | Invitation not found |
ERROR_REASON_OAUTH2_INVALID | OAuth2 is invalid |
ERROR_REASON_SYNC_LIMIT_EXCEEDED | Synchronization limit has been exceeded |
ERROR_REASON_SWITCH_ORG_HAS_BEEN_DELETED | The organization you switched to has been deleted |
ERROR_REASON_QUOTA_ACCOUNT_COUNT_LIMIT_EXCEEDED | Account count quota limit exceeded |