Error and warning codes
OfflineErrorCode
3001
A general offline related error code when a more specific error code could not be determined.
For detailed guidance on setting up offline playback and troubleshooting related issues, refer to the Offline Playback documentation.
3002
The download of a track failed. The message of the according OfflineEvent.Error provides more information.
3003
The operation could not be completed due to insufficient disk space for downloading content.
Ensure there is enough available storage on the device to proceed with the download.
3005
Access to the required files is denied.
This can occur due to insufficient privileges or because the requested resource is already in use by another process.
For detailed guidance on setting up offline playback and required permissions, refer to the Offline Playback documentation.
For more details on the specific cause of the error, refer to the message of the corresponding OfflineEvent.Error.
3006
A lock on a file which needs to be accessed is present, therefore an operation could not be completed. Requested actions should be requested again. If the error is thrown permanently, a dead lock may be present. The message of the according OfflineEvent.Error provides more information.
3007
A file lock could not be removed. This results in a situation that the SDK can not resolve automatically. The message of the according OfflineEvent.Error provides more information.
3008
The OfflineContentOptions could not be generated.
This error typically occurs when the device is offline and the options have not been previously fetched, or when the online source is unavailable or inaccessible.
Ensure the device is connected to the internet and that the online source is reachable.
3301
A general error indicating that the current DRM session could not be completed due to an unspecified issue.
See Offline Playback documentation for guidance on setting up offline playback and troubleshooting related issues.
For information on how to configure DRM, refer to SourceConfig.drmConfig and the Streaming DRM protected content with Bitmovin Player Android SDK. documentation.
For more detailed information about the cause of the failure, refer to the message of the corresponding OfflineEvent.Error.
3304
The provided DRM scheme is not supported on the device. See SourceErrorCode.DrmUnsupported for additional information.
OfflineWarningCode
3001
A general offline warning when a more specific warning code could not be determined.
3300
A general DRM warning when a more specific warning code could not be determined. The message of the according OfflineEvent.Warning provides more information.
3301
Releasing the DRM license failed.
PlayerErrorCode
1001
A general player error code when a more specific error code could not be determined. See Logging in the Android Player SDK for instructions on enabling verbose logging for contacting support with a full error report.
1002
Verification of the player license key failed because no license key was found. Make sure that a valid license is provided in the app manifest or PlayerConfig.
See Getting Started for more information.
1003
The license request was failed or was denied by the server. One possible reason is that the package of the app is not authorized for the specified player license key. Make sure that the package name of the application is registered for the license key provided in the app manifest or PlayerConfig. This can be done in the Bitmovin dashboard.
See Managing Player Licenses for more information.
1004
The player timed out in a non-network operation, e.g. when detaching the surface or releasing the player. Surface detachment timeouts can usually be ignored, as they do not affect playback. In order to avoid timeouts when releasing the player you can configure a longer timeout in the TweaksConfig.detachSurfaceTimeout and TweaksConfig.releasePlayerTimeout properties.
val playerConfig = PlayerConfig(
tweaksConfig = TweaksConfig(
detachSurfaceTimeout = 5.0, // 5 seconds
releasePlayerTimeout = 2.0, // 2 seconds
)
)
The message of the according PlayerEvent.Error provides more information.
1005
Interaction with an integration seems to be inconsistent.
The main root cause for this error is when the IMA SDK ads integration surfaces unexpected ad events or state changes. See Setup advertising with Google IMA for IMA integration instructions. See the API reference for the currently supported IMA SDK version.
The message of the according PlayerEvent provides more information.
2101
A general error indicating that a decoder action failed. The message of the according PlayerEvent.Error provides more information.
2102
Initialization of a decoder failed. The message of the according PlayerEvent.Error provides more information.
2103
Decoding a media segment failed. The message of the according PlayerEvent.Error provides more information.
2104
Decoding of unsupported data format failed. The message of the according PlayerEvent.Error provides more information.
2105
Decoding of a format that exceeds the device capabilities failed. The message of the according PlayerEvent.Error provides more information.
PlayerWarningCode
1001
A general player warning code when a more specific warning code could not be determined. Use this to catch generic issues that don't fit into a more specific category.
1003
The playlist state on the cast-enabled device is inconsistent with the local playlist state. See Setting up Google Cast support for guidance on proper setup.
For more details, refer to the PlayerEvent.Warning message associated with this warning.
1004
An error occurred while trying to manipulate the playlist. For more details, refer to the PlayerEvent.Warning message associated with this warning.
1005
The current state does not allow the specific API call that was attempted. For more details, refer to the PlayerEvent.Warning message associated with this warning.
1006
A feature is not supported in the current context. For more details, refer to the PlayerEvent.Warning message associated with this warning.
1007
Playback on the cast-enabled device failed.
For information on debugging streams on Chromecast devices, see How to debug streams on Chromecast devices.
For more details, refer to the PlayerEvent.Warning message associated with this warning.
1008
Target latency for live playback is estimated to be too low for the current network conditions (latency and jitter). For more details, refer to the PlayerEvent.Warning message associated with this warning.
1101
Initialization of a decoder failed, but the player will attempt to retry. For more details, refer to the PlayerEvent.Warning message associated with this warning.
1102
Initialization of a decoder failed and a fallback decoder will be used. Additional failures may result in a PlayerEvent.Error.
1301
A general warning code for advertising-related issues when no specific code is applicable. For more details, refer to the advertising setup documentation.
1302
The current ad break will not play any ads. One possible reason is that AdSourceType.Ima is used and no ads were returned from the ad server. For more information, consult the relevant PlayerEvent.Warning message.
1303
An ad was discarded by the player. This could be due to various issues with the ad or its content.
Possible causes for this waning include:
-
The Player.setAdViewGroup was called after the ad was loaded, making it impossible to display the ad.
-
A cast session was started while an ad was playing. See TweaksConfig.discardAdsWhileCasting for related configuration.
For more details, refer to the PlayerEvent.Warning message associated with this warning.
1304
It is not possible to disable the IMA UI for the current Ad, but the player was configured to disabling it if possible.
See ImaConfig.preferredUiType and ImaUiType.Disabled for reference.
1305
It is not possible to apply the preferred IMA UI elements. See ImaConfig.preferredUiType for details.
1306
Interaction with the IMA (Interactive Media Ads) system appears inconsistent. Ad playback or ad state may not behave as expected. Make sure you are using a supported IMA SDK version. See What IMA SDK versions are compatible with the Bitmovin Player Android SDK? for supported versions.
For more details, refer to the PlayerEvent.Warning message associated with this warning.
1400
A generic DRM-related warning. This is for situations where the warning relates to a DRM workflow but no specific DRM-related warning code applies. For more details on setting up DRM, refer to the documentation for streaming DRM content.
Streaming DRM protected content with Bitmovin Player Android SDK
SourceErrorCode
2001
A general player error code when a more specific error code could not be determined. See Logging in the Android Player SDK for instructions on enabling verbose logging for contacting support with a full error report.
2002
The source could not be loaded as the stream type is not supported.
This error typically occurs when attempting to load an RTP stream without the necessary plugin to handle that specific stream type.
The message of the according SourceEvent.Error provides more information.
2200
A general error indicating that an I/O or Networking action failed.
Possible causes for this error include:
-
The server returned a resource with an invalid "Content-Type" HTTP header value. For example, this can happen when the player expects media content, but the server returns a HTML page with a "text/html" content type.
-
Reading data outside the expected bounds.
-
Lack of permission to perform an I/O operation, such as insufficient permissions to access the internet or external storage. See Permissions on Android for details.
-
A non-existent file that is not served over the network. For network-related errors, SourceErrorCode.HttpStatusCode will be emitted.
For more details, refer to the message of the associated SourceEvent.Error.
2201
The network connection failed.
Possible causes for this error include:
-
Missing network connection, see Connectivity Manager for details on how to check for network connectivity.
-
An unreachable target.
-
The host unexpectedly closing the connection.
The message of the according SourceEvent.Error provides more information.
2202
The network connection timed out. It took too long to receive a response from the server. The message of the according SourceEvent.Error provides more information.
2203
An unexpected (error) HTTP status code was received.
See NetworkConfig.retryHttpRequestConfig to configure custom retry behavior in case of failing HTTP requests.
The message of the according SourceEvent.Error provides more information.
2204
Attempted to create a clear text (i.e. http instead of https) connection without the necessary permissions. To allow clear text connections, the apps network security configuration can be adjusted.
2301
A general error indicating that the current DRM session failed for an unspecified reason.
Possible causes for this error include:
-
Attempting to play incompatible DRM-protected content. For example, this can occur when trying to play a DRM-protected stream using a scheme (like Widevine) that lacks the necessary license acquisition data (e.g., a missing pssh box).
-
An error occurring within the DRM system itself, which may prevent proper session handling.
For information on how to configure DRM, refer to SourceConfig.drmConfig and the Streaming DRM protected content with Bitmovin Player Android SDK. documentation.
For more details, refer to the message of the associated SourceEvent.Error.
2304
The provided DRM scheme is not supported on the device.
This error occurs when attempting to use a DRM scheme (like WidevineConfig, ClearKeyConfig, PlayReadyConfig or NagraConnectConfig) that the device does not support. Consider checking the device's capabilities before selecting a DRM scheme, see MediaDrm for additional details.
Example code to check device capabilities:
val supportedCryptoSchemes = MediaDrm.getSupportedCryptoSchemes()
if (supportedCryptoSchemes.contains(WidevineConfig.UUID)) {
// Widevine is supported
} else {
// Widevine is not supported, choose another DRM scheme
}
For information on how to configure DRM, refer to SourceConfig.drmConfig and the Streaming DRM protected content with Bitmovin Player Android SDK. documentation.
2305
The response to the DRM license request failed due to an invalid HTTP response code.
This error typically occurs when the server returns an unexpected or invalid HTTP status code in response to a DRM license request. Possible causes include:
-
A failure while provisioning the device.
-
A failure while trying to obtain a DRM license.
-
Server-side issues, incorrect URL, or improper configuration.
For information on how to configure DRM, refer to SourceConfig.drmConfig and the Streaming DRM protected content with Bitmovin Player Android SDK documentation.
The message of the associated SourceEvent.Error will provide more specific details on the error.
2308
The DRM license key has expired.
Possible causes include:
-
The offline DRM license key has expired and needs to be renewed. See OfflineContentManager.remainingOfflineLicenseDuration and OfflineContentManager.renewOfflineLicense for renewing offline license.
-
An expired DRM license being loaded into an open DRM session.
-
The device has had its DRM privileges revoked, preventing further use of the license. This situation can arise if the device's Widevine L1 certificate has been revoked by Google/Widevine, as observed with older devices like the Pixel C. In such cases, you can force the player to use Widevine L3 by setting WidevineConfig.preferredSecurityLevel to
L3
. For more information, see the Bitmovin Community discussion on DRM error on older Android devices like Pixel C.
2309
Configuration or setup of the DRM system failed.
Possible causes for this error include:
-
NAGRA Connect DRM configuration failed. See Playing protected content with Nagra DRM for details on how to set up NAGRA Connect DRM.
The message of the according SourceEvent.Error provides more information.
2310
The DRM system has prevented the requested operation.
Possible causes for this error include:
-
The license policy does not permit the requested action (e.g. renew or persist of the license). Check the license policy configuration on the license server.
-
The output protection levels supported by the device are not sufficient to meet the requirements set by the content owner in the license policy. You can check the current supported output protection levels using the following code snippet:
val mediaDrm = MediaDrm(WidevineConfig.UUID)
val outputProtectionLevel = mediaDrm.getConnectedHdcpLevel()
-
The security level is inadequate to perform the operation.
-
The key required for decryption has expired.
-
The necessary key has not been loaded into the DRM system.
The message of the according SourceEvent.Error provides more information.
SourceWarningCode
2000
A general source warning code when a more specific warning code could not be determined. The message of the according SourceEvent.Warning provides more information.
2001
A track with an unsupported codec or format was discovered. The message of the according SourceEvent.Warning provides more information.
2002
It was not possible to load a thumbnail track due to an invalid URI or server communication failure. The message of the according SourceEvent.Warning provides more information.
2003
It was not possible to parse a thumbnail track. The message of the according SourceEvent.Warning provides more information.
2004
It was not possible to load a subtitle track due to an invalid URI or server communication failure. The message of the according SourceEvent.Warning provides more information.
2005
It was not possible to parse a subtitle track. The message of the according SourceEvent.Warning provides more information.
2006
The current state does not allow a specific API call.
Possible causes for this warning include:
-
Calling source specific methods on the player before a source has been loaded.
-
Calling methods on a source before loading it into a player.
-
Configuring analytics metadata on the source when the player was created without analytics support.
The message of the according SourceEvent.Warning provides more information.
2007
It was not possible to parse some metadata.
Possible causes for this warning include:
-
The metadata is malformed.
-
A certain part of the metadata format is not supported.
Metadata event emissions might be incomplete or missing.
The message of the according SourceEvent.Warning provides more information.
2008
A media track or quality was filtered out of the playback session according to the configured MediaFilter. The message of the according SourceEvent.Warning provides more information.
2009
A feature is not supported in the current context. The message of the according SourceEvent.Warning provides more information.
2300
A general source warning indicating that the current DRM session failed and no more specific warning code could be determined. The player may be able to recover from this error and continue playback.
For possible causes and recovery options, refer to SourceErrorCode.DrmGeneral.
For more details, refer to the SourceEvent.Warning message associated with this warning.
2306
The response to the DRM license request failed with an invalid HTTP response code. The player may be able to recover from this error and continue playback.
See SourceErrorCode.DrmRequestFailed for possible causes.
For more details, refer to the SourceEvent.Warning message associated with this warning.
2310
It was not possible to setup the configured security level. The message of the associated SourceEvent.Warning provides more information.
Possible causes include:
-
The selected security level is not supported on the device.
-
Misconfiguration of the DRM settings or device security restrictions.
For more details on configuring security levels, refer to Streaming DRM protected content with Bitmovin Player Android SDK and Widevine Security Levels in Depth.
2311
The offline DRM license key has expired and requires renewal. The player may be able to recover from this error and continue playback.
For possible causes, refer to SourceErrorCode.DrmKeyExpired.