Brightcove Player Error Reference

This document is the collection of errors for Brightcove Player. Note that errors are thrown from a number of different plugins.

Types of errors

There are six main types of errors which are briefly described in this section. You can click on the error type to see the specific errors for each type, if applicable.

Standard errors

Very generally, media errors occur when issues arise trying to retrieve or playback the media. For instance, if your network connection is lost, or you get an encrypted video that cannot be decrypted, you will get a media error. For complete details see the Standard errors section of the Display Error Messages Plugin document.

Code Type Headline Message
1 MEDIA_ERR_ABORTED The video download was canceled You aborted the media playback.
2 MEDIA_ERR_NETWORK The video connection was lost, please confirm you're connected to the Internet A network error caused the media download to fail part-way. Currently most helpful for MP4 and/or progressive download video formats. See the Known issues section of the Display Error Messages Plugin document for details.
3 MEDIA_ERR_DECODE The video is bad or in a format that can't be played on your browser The media playback was aborted due to a corruption problem or because the media used features your browser did not support.
4 MEDIA_ERR_SRC_NOT_SUPPORTED This video is either unavailable or not supported in this browser The media could not be loaded, either because the server or network failed or because the format is not supported.
5 MEDIA_ERR_ENCRYPTED The video you're trying to watch is encrypted and we don't know how to decrypt it The video you're trying to watch is encrypted and we don't know how to decrypt it.
Unknown MEDIA_ERR_UNKNOWN N/A An unanticipated problem was encountered, check back soon and try again.

Custom errors

Very generally, player errors occur when the video has been loaded, for some reason cannot be played. For instance, if domain, geo or IP restrictions prevent viewing a video, player errors will occur. For complete details see the Custom errors section of the Display Error Messages Plugin document.

Code Message Description
-1 PLAYER_ERR_NO_SRC No video has been loaded.
-2 PLAYER_ERR_TIMEOUT Could not download the video, the default timeout is 45 seconds.
Not Set PLAYER_ERR_ACCOUNT_ID Account ID missing or invalid.
Not Set PLAYER_ERR_DOMAIN_RESTRICTED This video is restricted from playing on your current domain.
Not Set PLAYER_ERR_IP_RESTRICTED This video is restricted at your current IP address.
Not Set PLAYER_ERR_GEO_RESTRICTED This video is restricted from playing in your current geographic region.
1 PLAYER_ERR_NO_SRC No video has been loaded.
Not Set PLAYER_ERR_OFFER_RESTRICTED Video is not playable with your entitlements.
Not Set PLAYER_ERR_TAG_RESTRICTED Video does not have tags required for playback.
2 PLAYER_ERR_TIMEOUT VCould not download the video for 45 seconds (by default).

Catalog errors

Very generally, the catalog will throw errors when there are issues retrieving or initially playing the video or playlist. For instance, if you use a non-existent ID, or an ID from a different account in which the player exists, to retrieve a video you will get a catalog error. For complete details see the Catalog errors section of the Player Catalog document.

Catalog Error Description
VIDEO_CLOUD_ERR_ACCOUNT_NOT_FOUND The player has been configured with an invalid Video Cloud account ID.
VIDEO_CLOUD_ERR_ACCOUNT_RETRIEVE_FAILURE The Video Cloud account was not available.
VIDEO_CLOUD_ERR_RESOURCE_NOT_FOUND The default playlist ID is invalid.
VIDEO_CLOUD_ERR_NOT_PLAYABLE The Video Cloud video is not playable.
Frequent causes of this error include when a video ID is deactivated or when the scheduled availability has expired.
VIDEO_CLOUD_ERR_AD_CONFIG_ID_NOT_FOUND The Video Cloud SSAI ad config id was not found.
VIDEO_CLOUD_DENIED_BY_DEVICE_LIMITING Maximum number of streams has been reached on this device.
VIDEO_CLOUD_DENIED_BY_STREAM_LIMIT_CREATE Limited stream has reached the maximum number of viewers.
VIDEO_CLOUD_DENIED_BY_STREAM_LIMITING Limited stream has reached the maximum number of viewers.
VIDEO_CLOUD_DENIED_BY_STREAM_LIMIT_RENEW Limited stream is already being watched by the maximum number of viewers.
VIDEO_CLOUD_ERR_DUPLICATE_PARAMETERS The same parameter name was provided more than once in the request.
VIDEO_CLOUD_ERR_LICENSE_RETRIEVE_FAILURE Stream license unavailable.
VIDEO_CLOUD_ERR_METHOD_NOT_ALLOWED API method not allowed.
VIDEO_CLOUD_ERR_NOT_PLAYABLE The Video Cloud video is not playable.
VIDEO_CLOUD_ERR_OFFERS_RETRIEVE_FAILURE Stream offers unavailable.
VIDEO_CLOUD_ERR_PLAYBACK_RIGHT_RETRIEVE_FAILURE Entitlements unavailable.
VIDEO_CLOUD_ERR_PLAYLIST_NOT_FOUND Playlist cannot be found.
VIDEO_CLOUD_ERR_PLAYLIST_NOT_PLAYABLE Playlists is not currently available for playback.
VIDEO_CLOUD_ERR_PLAYLIST_RETRIEVE_FAILURE Video playlist unavailable.
VIDEO_CLOUD_ERR_PLAYLIST_VIDEOS_RETRIEVE_FAILURE Playlist videos unavailable.
VIDEO_CLOUD_ERR_RESOURCE_NOT_FOUND The Video Cloud resource was not found.
VIDEO_CLOUD_ERR_RIGHTS_RETRIEVE_FAILURE Stream rights unavailable.
VIDEO_CLOUD_ERR_SERVER An internal server error prevented playback.
VIDEO_CLOUD_ERR_SERVICE_TIMEOUT Received a timeout from the server. Please try again later.
VIDEO_CLOUD_ERR_SERVICE_UNAVAILABLE The server is currently unavailable. Please try again later.
VIDEO_CLOUD_ERR_TOKEN_INVALID Video cannot be played without a valid token.
VIDEO_CLOUD_ERR_TOKEN_REQUIRED Video cannot be played without a token.
VIDEO_CLOUD_ERR_VIDEO_NOT_FOUND The default video is invalid.
VIDEO_CLOUD_ERR_VIDEO_NOT_PLAYABLE Video is not currently available for playback.
VIDEO_CLOUD_ERR_VIDEO_RETRIEVE_FAILURE Video is not currently available.
VIDEO_CLOUD_ERR_VIDEO_URLS_RETRIEVE_FAILURE Stream URLs unavailable.

HLS plugin errors

For complete details see the Errors section of the HLS Plugin document.

HLS Plugin Error Description
APPEND_BUFFER_ERR The browser threw an error playing back an HLS video.

QoE analytics module ios errors

Code Error Description
69401 Indicates a problem with the FairPlay license associated with the content you are trying to play. This could be due to various reasons, such as an expired license, a corrupted license, or a mismatch between the license and the device or app attempting to play the content.
69402 Indicates that the FairPlay license server could not provide a valid response to the device's request for a license. This can be due to various reasons, such as a network connectivity issue, a problem with the license server, or an issue with the device's certificate or security settings.

Playback Restriction errors

For errors associated with Brightcove Playback Restrictions, see the Playback Restrictions Error Reference document.

If you are new to playback restrictions, see the Overview: Brightcove Playback Restrictions document.

Console errors

These errors would appear in a console looking something like this:

Console error
Console Message Solution
VIDEOJS: ERROR: videojs-contrib-ads has not seen a loadstart event 5 seconds after being initialized, but a source is present. This indicates that videojs-contrib-ads was initialized too late. It must be initialized immediately after video.js in the same tick. As a result, some ads will not play and some media events will be incorrect. For more information, see https://github.com/videojs/videojs-contrib-ads#important-note-about-initialization You see this because for the IMA3 plugin to function properly it needs to be loaded right after player initialization, before any other plugins are initialized. See the Implement using code section of the IMA3 Plugin doc for the solution.

Custom user errors

For complete details see the Adding custom errors section of the Display Error Messages Plugin document. There are no standard custom user errors.

Network security errors

These errors occur when your network security blocks some Brightcove domains and ports.

Error Code Description
FLASHLS_ERR_CROSS_DOMAIN The video could not be loaded: crossdomain access denied.
You may need a crossdomain.xml file at the root of your playlist file that allows the domain you are requesting from (or '*').

Listening for errors

You can also listen for all errors using the on() method, using the following:

myPlayer.on('error'), function () {
  ...
}

If you are playing ads and want to catch all errors, you need to use this:

myPlayer.on(['error','aderror')], function () {
  ...
}