Error Codes
The library follows hexadecimal error system. The least significant 16-bits (Bits 0-15) indicate a Component Error Code and the most significant 16-bits (Bits 16-31) indicate the Categories that the error falls into.
Error Category | Mask | Description |
---|---|---|
Network Error | 0x10000 | Indicates that the error occurrence is network. related |
Server Error | 0x20000 | Indicates a server response failure. |
Third party Error | 0x40000 | Indicates a failure in third party components such as External Player, Third party Libraries etc., |
Reserved | 0x80000 | Reserved for future use. |
Reserved | 0x100000 | Reserved for future use. |
Reserved | 0x200000 | Reserved for future use. |
Playback Error | 0x400000 | Indicates that the error occurrence is during a Playback. |
- 0x40* - Playback Error most probably due to player itself.
- 0x41* - Playback error due to Network failure.
- 0x42* - Playback error due to Server response failure.
Error Code | Hexadecimal value | Component Error Code | Description |
---|---|---|---|
MEDIA_SOURCE_FAILURE | 0x400201 | 0x201 | Indicates that an error has occurred while loading the MediaSource. |
MEDIA_SOURCE_TIMEOUT | 0x400202 | 0x202 | Indicates that Fetching of the Media Source from network timed-out. |
DRM_PROVISIONING_FAILURE | 0x400203 | 0x203 | Indicates that an error has occurred while Provisioning Model Certificates on the specific device. |
DRM_PROVISIONING_TIMEOUT | 0x400204 | 0x204 | Indicates that Fetching of DRM Provisioning Data from Network Timed-Out. |
DRM_LICENSE_FAILURE | 0x400205 | 0x205 | Indicates that an error has occurred while Loading DRM Keys for a particular content either from network (or) persistent storage. |
DRM_LICENSE_TIMEOUT | 0x400206 | 0x206 | Indicates that Fetching of DRM Keys from network timed-out. |
DRM_LICENSE_EXPIRED | 0x400207 | 0x207 | Indicates that Loaded DRM Keys are expired. |
MEDIA_PLAYBACK_FAILURE | 0x400208 | 0x208 | Indicates that rendering of media failed. |
MEDIA_PLAYBACK_STALE | 0x400209 | 0x209 | Indicates Player playback has stalled. |
SYSTEM_FAILURE | 0x40020B | 0x20B | Indicated that Unsupported device action or incompatible output devices are used. |
BUFFER_TIMEOUT | 0x400215 | 0x215 | Indicated that Buffering timeout has occured. |
IMA DAI Error Code
Error Code | Hexadecimal value | Component Error Code | Description |
---|---|---|---|
IMA_STREAM_MANAGER_INITIALIZATION_FAILURE | 0x41001 | 0x1001 | Indicates a failure when loading ads for IMA Server |
Error Object
The Error object returned by the library is a linked list that traces the error occurrence from an higher-level component, to the lower-level component where the error actually occurred.
The Player component can talk to an internal component that in turn talks to head-end server. If the server returns an error-ful response, the Error
object returned from the player component might have internalError
property set to the error thrown
by the internal component which might actually be a server error information.
The more deeper we go in the linked list , the more specific the
Error
would be. It's up to the application developers to utilize the depth ofError
information as they desire.
interface Error {
/**
* Unique Error Code with all Category Masking Set.
*/
errorCode: number;
/**
* Error message describing the Error.
*/
errorMessage?: string;
/**
* The internal root-cause of the Error if any.
*/
internalError?: Error;
/**
* The internal Contextual description of the Error if any.
* This is usually set if the error is from a third-party source.
*/
contextDescription?: string;
/**
* A Computed property that returns the component error code
* removing all CATEGORY MASK.
*/
componentErrorCode?: number;
}
Player Restart
We recommend configuring the player to restart automatically on encountering errors 0x40020B
and 0x400215
to improve playback reliability.
// Handling error `40020B` & `400215`
player.subscribe("error", function (error) {
if (error.hexErrorCode === "400215" || error.hexErrorCode === "40020B" ) {
// Re-prepare the player (re-authorize and create a new player instance).
}
});