Skip to main content

Error Responses

HTTP Status Codes

When you call the Platform API, it will respond with standard HTTP status codes, categorized as follows:

Status CodeDescription
2xxThe request succeeded
4xxClient error responses
5xxServer 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:

FieldTypeDescription
codeintegerThis is a standardized error code, which software can use to determine how to handle the error with.
messagestringThis human-readable explanation of the error provides context on what went wrong.
detailsobject[]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

CodeNameHTTP Status CodeDescription
3InvalidArgument400InvalidArgument 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).
9FailedPrecondition400FailedPrecondition indicates operation was rejected because the system is not in a state required for the operation's execution.
16Unauthenticated401Unauthenticated indicates the request does not have valid authentication credentials for the operation.
5NotFound404NotFound means some requested resource was not found.
7PermissionDenied403PermissionDenied indicates the caller does not have permission to execute the specified operation.
6AlreadyExists409AlreadyExists means an attempt to create an resource failed because one already exists.
10Aborted409Aborted indicates the operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc.
8ResourceExhausted429ResourceExhausted indicates some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.
13Internal500Internal errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken.
2Unknown500Unknown server error. Typically a server bug.
14Unavailable503Unavailable 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.
4DeadlineExceeded504DeadlineExceeded 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.

FieldTypeDescription
reasonstringThe 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.
domainstringThe logical grouping to which the reason belongs.
metadataobjectAdditional structured details about this error.

Please refer to the next section for the error reason and domain information.

Error Reason

Common Reasons

ReasonDescription
ERROR_REASON_UNAUTHENTICATEDSame as error code Unauthenticated
ERROR_REASON_INVALID_ARGUMENTSame as error code InvalidArgument
ERROR_REASON_NOT_FOUNDSame as error code NotFound
ERROR_REASON_ALREADY_EXISTS, ERROR_REASON_EXISTSSame as error code AlreadyExists
ERROR_REASON_DEADLINE_EXCEEDEDSame as error code DeadlineExceeded
ERROR_REASON_PERMISSION_DENIEDSame as error code PermissionDenied
ERROR_REASON_INTERNAL, ERROR_REASON_INTERNAL_ERRORSame as error code Internal
ERROR_REASON_UNAVAILABLESame as error code Unavailable
ERROR_REASON_ABORTEDSame as error code Aborted
ERROR_REASON_FAILED_PRECONDITIONSame as error code FailedPrecondition
ERROR_REASON_RESOURCE_EXHAUSTEDSame as error code ResourceExhausted
ERROR_REASON_UNKNOWNSame as error code Unknown

Domain bv.cms.v1

ReasonDescription
ERROR_REASON_NOT_AUTHORIZENot authorized
ERROR_REASON_IN_USEResource is in use
ERROR_REASON_NO_PERMISSION_ACCESSNo permission to access
ERROR_REASON_FILE_NOT_EXISTFile does not exist
ERROR_REASON_FILE_SIZE_EXCEEDEDFile size has been exceeded
ERROR_REASON_GET_LOCK_ERRORError acquiring lock
ERROR_REASON_CHANNEL_ERRORChannel error
ERROR_REASON_ENCODING_ERROREncoding error
ERROR_REASON_ORGANIZATION_HAS_BEEN_DELETEDOrganization has been deleted
ERROR_REASON_CLOUD_STORAGE_FILE_DOWNLOAD_DENIEDCloud storage file download denied
ERROR_REASON_CONTENT_PERMISSION_DENIEDContent permission denied
ERROR_REASON_CONTENT_PERMISSION_INVALIDContent permission is invalid
ERROR_REASON_ACTION_NOT_ALLOWEDAction not allowed
ERROR_REASON_SCOPE_INSUFFICIENTInsufficient scope
ERROR_REASON_QUOTA_LIVE_CONCURRENT_LIMIT_EXCEEDEDLive concurrent quota limit exceeded
ERROR_REASON_QUOTA_LIVE_ULL_NOT_ALLOWEDLive ULL not allowed under quota
ERROR_REASON_QUOTA_LIVE_MINUTE_LIMIT_EXCEEDEDLive minute quota limit exceeded
ERROR_REASON_QUOTA_LIBRARY_STORAGE_LIMIT_EXCEEDEDLibrary storage quota limit exceeded
ERROR_REASON_QUOTA_VOD_STORAGE_LIMIT_EXCEEDEDVOD storage quota limit exceeded
ERROR_REASON_QUOTA_STT_MINUTE_LIMIT_EXCEEDEDSTT minute quota limit exceeded
ERROR_REASON_QUOTA_MEETING_NOT_ALLOWEDMeeting not allowed under quota
ERROR_REASON_QUOTA_INSTANT_ENCODING_NOT_ALLOWEDInstant encoding not allowed under quota
ERROR_REASON_QUOTA_INSTANT_ENCODING_KKBOX_NOT_ALLOWEDInstant encoding with KKBOX not allowed under quota
ERROR_REASON_QUOTA_BYO_CDN_SETTING_LIMIT_EXCEEDEDBYO CDN setting quota limit exceeded
ERROR_REASON_QUOTA_BYO_CDN_CF_NOT_ALLOWEDBYO CDN Cloudflare not allowed under quota
ERROR_REASON_QUOTA_CLOUD_STORAGE_S3_INPUT_NOT_ALLOWEDCloud storage S3 input not allowed under quota
ERROR_REASON_QUOTA_CLOUD_STORAGE_S3_OUTPUT_NOT_ALLOWEDCloud storage S3 output not allowed under quota
ERROR_REASON_VOD_ENCODING_CREATE_LEGACY_NOT_ALLOWEDVOD legacy encoding creation not allowed
ERROR_REASON_MULTI_VOD_ENCODINGS_NOT_ALLOWEDMultiple VOD encodings not allowed
ERROR_REASON_VOD_ENCODING_IN_PROGRESSVOD encoding is in progress
ERROR_REASON_STT_IN_PROGRESSSTT is in progress

Domain bv.playback.v1

ReasonDescription
ERROR_REASON_RESOURCE_NOT_FOUNDResource not found
ERROR_REASON_LICENSE_INVALIDLicense is invalid
ERROR_REASON_TOKEN_INVALIDToken is invalid
ERROR_REASON_EXTERNAL_ULL_FORBIDDENExternal ULL forbidden
ERROR_REASON_UNAUTHORIZED_TO_PLAYUnauthorized to play
ERROR_REASON_OVER_DEVICE_LIMITOver device limit
ERROR_REASON_PLAYBACK_SESSION_EXPIREDPlayback session expired
ERROR_REASON_DOMAIN_INVALIDDomain is invalid
ERROR_REASON_RETRY_LATERPlease retry later
ERROR_REASON_TOKEN_EXPIREDToken has expired

Domain bv.aisk.v1

ReasonDescription
ERROR_REASON_SOURCE_REQUIRES_IN_INGESTING_STATUSSource requires ingesting status
ERROR_REASON_SOURCE_REQUIRES_IN_READY_STATUSSource requires ready status
ERROR_REASON_SOURCE_REQUIRES_A_WEBSITE_TYPESource requires a website type
ERROR_REASON_TOKEN_INVALIDToken is invalid
ERROR_REASON_SOURCE_NOT_A_GROUP_SOURCESource is not a group source
ERROR_REASON_ORGANIZATION_DEACTIVATEDOrganization is deactivated
ERROR_REASON_INPUT_EXCEED_LENGTH_LIMITInput exceeds length limit
ERROR_REASON_DOMAIN_INVALIDDomain is invalid
ERROR_REASON_PROMPT_CONTENT_FILTERPrompt content filtered
ERROR_REASON_PROMPT_THROTTLINGPrompt throttling occurred
ERROR_REASON_PROMPT_OUT_OF_QUOTAPrompt is out of quota
ERROR_REASON_QUOTA_CHATBOT_COUNT_LIMIT_EXCEEDEDChatbot count limit exceeded

Domain bv.chatroom.v1

ReasonDescription
ERROR_REASON_CHATROOM_INACTIVEChatroom is inactive
ERROR_REASON_TOKEN_INVALIDToken is invalid
ERROR_REASON_CHAT_BIND_DICTIONARY_LIMIT_EXCEEDEDChat bind dictionary limit exceeded
ERROR_REASON_DICTIONARY_PATTERNS_LIMIT_EXCEEDEDDictionary patterns limit exceeded
ERROR_REASON_FAILED_PRECONDITIONFailed precondition
ERROR_REASON_ORGANIZATION_NOT_ACTIVATEOrganization is not activated
ERROR_REASON_MAX_DICTIONARIES_PER_ORG_LIMIT_EXCEEDEDMax dictionaries per organization limit exceeded
ERROR_REASON_MAX_LENGTH_OF_PATTERN_TEXT_LIMIT_EXCEEDEDMax length of pattern text limit exceeded
ERROR_REASON_INVALID_SYMBOLS_CONTAINS_IN_PATTERN_TEXTInvalid symbols contained in pattern text
ERROR_REASON_MAX_STICKER_PACKS_PER_ORG_LIMIT_EXCEEDEDMax sticker packs per organization limit exceeded
ERROR_REASON_MAX_STICKERS_PER_STICKER_PACK_LIMIT_EXCEEDEDMax stickers per sticker pack limit exceeded

Domain bv.org.v1

ReasonDescription
ERROR_REASON_TOKEN_INVALIDToken is invalid
ERROR_REASON_NOT_AUTHORIZENot authorized
ERROR_REASON_CONFLICTConflict occurred
ERROR_REASON_HAS_APPENDED_SUB_ORGSHas appended sub-organizations
ERROR_REASON_PERMISSION_DENIEDPermission denied
ERROR_REASON_USER_NOT_IN_ORGUser is not in the organization

Domain bv.account.v1

ReasonDescription
ERROR_REASON_ACCOUNT_NOT_CREATEDAccount has not been created
ERROR_REASON_TOKEN_INVALIDToken is invalid
ERROR_REASON_TOKEN_EXPIREToken has expired
ERROR_REASON_VERIFY_CODE_EXPIREVerification code has expired
ERROR_REASON_VERIFY_CODE_MISMATCHVerification code does not match
ERROR_REASON_NOT_CONFIRMAction has not been confirmed
ERROR_REASON_NOT_AUTHORIZENot authorized
ERROR_REASON_TOO_MANY_REQUESTSToo many requests
ERROR_REASON_INVITE_NOT_FOUNDInvitation not found
ERROR_REASON_OAUTH2_INVALIDOAuth2 is invalid
ERROR_REASON_SYNC_LIMIT_EXCEEDEDSynchronization limit has been exceeded
ERROR_REASON_SWITCH_ORG_HAS_BEEN_DELETEDThe organization you switched to has been deleted
ERROR_REASON_QUOTA_ACCOUNT_COUNT_LIMIT_EXCEEDEDAccount count quota limit exceeded