CMS API Error Message Reference

This is a reference to error messages returned by the CMS API. Also see the error message reference for the Dynamic Ingest API, which is used in conjunction with the CMS API for ingesting videos.

General error messages

Status Name Message Cause
400 BAD_REQUEST ILLEGAL_PATH: A request for more than 10 videos is not supported The basic GET /videos/video_ids request cannot request more than 10 videos
400 INVALID_SORT Attempted to sort by invalid property: '[property name]' The sort param pointed to an invalid or non-existent field
400 INVALID_SEARCH Search string was invalid The search string syntax was invalid, or you failed to URIEncode the search string
400 ILLEGAL_QUERY There was a problem with the query string The search string syntax was invalid - example: 1) doing a tags search that ends with a comma or has an unclosed quote
400 BAD_VALUE Unrecognized field in the submitted data Spelling error or other use of non-existent field
400 AD_CONFIG_NOT_FOUND Ad config not found Ad configuration specified in an SSAI request was not found
400 AD_CONFIG_INACTIVE Ad config is inactive Ad configuration specified in an SSAI request is inactive
400 REFERENCES_EXIST This video is referenced by at least one playlist. You are attempting to delete a video that is included in at least one playlist.
400 SHARED_VIDEO Delete of shared video failed. Deletion of shared videos is not yet supported.
401 UNAUTHORIZED Permission denied. Missing or invalid OAuth access token. If you did supply an access token, it may not have for the appropriate scope for this request
403 NOT_AVAILABLE Resource is not available. The resource you are requesting is temporarily unavailable - this may be a temporary condition while some kind of processing of the video is in progress, but if the message persists, contact Support.
404 RESOURCE_NOT_FOUND Resource does not exist. You requested a resource that does not exist - check spelling of path items.
405 METHOD_NOT_ALLOWED The HTTP method used for the request is not allowed for this resource The most common cause is sending a PUT, POST, PATCH, or DELETE to a read-only resource.
406 NOT_ACCEPTABLE The HTTP Accept header has a value not allowed. The Accept header must have the value application/json; other values such as application/x-www-form-urlencoded will cause the request to be rejected with this error.
409 LIVE_VIDEOS_NOT_SHAREABLE This video cannot be shared because it is live. Live streaming videos and clips created from them cannot be shared.
409 REFERENCE_ID_IN_USE Reference id is already in use. You attempted to create a video with a reference id that is already in use, or add a reference id to a video which is already used by another video.
409 CONCURRENT_UPDATE Update failed because of another update at the same time. Please try again. Either a separate API request, a Studio user, or some system process is currently updating the video. This can also occur if you are making API update requests on the same video asynchronously, in rapid succession.
409 CONFLICT Reference id is already in use. To insure uniqueness of reference ids, operations involving reference ids will lock the id for up to 3 minutes. That means that if you make a request that creates or changes a reference id and then make any other request that uses that reference id immediately, the operation will fail with a 409 error. This would include: 1) deleting a video and then trying to assign its reference id to another video; 2) attempting to create a new video that fails with a 503 (service unavailable) error and trying the same request again.

Please wait at least 3 minutes after getting this error before retrying the operation. Note also that if you attempt the create a video with a reference id, and the attempt fails (for reasons unrelated to the reference id), that reference id will be locked for 30 seconds, and repeated attempts to create the video will fail until you wait long enough for the reference id to be unlocked.

409 CONFLICT Both accounts must be enabled for media sharing. When a master account attempts to add an affiliate account to a channel for media sharing, both accounts must be enabled for media sharing.
409 UNSUPPORTED_MEDIA_TYPE   The request is most likely missing the header: Content-Type: application/json.
415 SHARING_DISABLED Master account is not enabled for media sharing. This error will be returned if you attempt to share a video from an account that does not have media sharing enabled.
422 ILLEGAL_FIELD Unrecognized field in the submitted data Spelling error or other use of non-existent field
422 VALIDATION_ERROR (the JSON data was not valid - error messages vary depending on the problem) Examples of messages:
  • name: REQUIRED_FIELD (create a video w/o a name, update name to empty string)
  • account_id: WRONG_ACCOUNT  (account ID in URL does not match account ID in JSON)
  • Invalid keys: id (the id cannot be modified and should not appear as key in the JSON)
429 TOO_MANY_REQUESTS Too many requests You are submitting too many simultaneous requests or too many requests per second
500 UNKNOWN an unknown internal error occurred Issue in Brightcove system - try again later.
503 SERVICE_UNAVAILABLE The API is temporarily unavailable Backend issue - try again later.
504 TIMEOUT something took too long Server likely too busy - try again later.

Media Sharing Errors

Media sharing errors are not returned as a separate error response to the API request, but rather in an error_message field in the normal response:

  "video_id" : "394872349182374",
  "affiliate_id" : "234987239487",
  "affiliate_video_id" : "30308254055202",
  "status" : "COMPLETE",
  "shared_at" : "2017-12-11T17:57:45.530Z",
  "updated_at" : "2017-12-11T18:03:32.789Z",
  "error_message" : "[{"error_code":"MISSING_CUSTOM_FIELDS","error_message":"Affiliate account is missing custom fields: [whisky]"}]"

The error_message json will be an array of error objects, object will have error_code and error_message.


The error code will usually be sharing-specific but it could be any of the valid error codes that can be returned by a PATCH (update) operation on a video as well. The sharing specific error codes are shown in the table below.

Media Sharing Error Codes
error_code error_message Cause
MISSING_CUSTOM_FIELDS Affiliate account is missing custom fields: [field1, field2] The master has set enforce_custom_fields to true, but the video being shared references fields that do not exist in the affiliate account.
CONFLICT Affiliate account is not configured for geo restriction. The master has enforce_geo set to true and their account is configured for geo-filtering, but the affiliate account is not configured for geo-filtering.
SHARING_DISABLED Affiliate account is not enabled for media sharing. The master has attempted to share a video with an affiliate that is not enabled for media sharing.
NOT_FOUND Resource does not exist. Something was missing. Usually this means the master video is gone. This can happen if a share request is immediately followed by a delete of the master video. This might also mean the master account does not have a channel yet or if the affiliate account does not exist or is not a valid member of the channel. This might happen if something went wrong in migration to CMS API media sharing.
UNKNOWN Sharing failed with an unknown error, error_id INSERT-UNIQUE-ERROR-ID Something unexpected happened. The error_message will include an error id that can be used by devops to identify the underlying cause. Retrying the share attempt will work in many cases.
VALIDATION_ERROR {field}: ILLEGAL_VALUE If {field} is "economics" then the problem is that the master video is "AD SUPPORTED" but the affiliate account does not have ads enabled. Also occurs if you set the Advertising to Ad supported on the video metadata (of a non-shared video) when the account is disabled for ads. If {field} is something else, then investigation is required.
REFERENCE_ID_IN_USE Reference id whatever-you-used is already in use. The reference id was valid in the master account but is already in use by the affiliate account.