Skip to content

Offline playback - Error decrypting data: requested key has not been loaded: ERROR_DRM_NO_LICENSE #2773

@J6ey

Description

@J6ey

Version

Media3 main branch

More version details

No response

Devices that reproduce the issue

Pixel 6a - Android 16 - physical
Pixel 6 Pro - Android 15 - emulator
Samsung Galaxy S25 - Android 15 - physical

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

  1. Download video
  2. Wait for completion
  3. Offline playback

Expected result

Offline playback should work without error.

Actual result

Streaming works fine. This error occurs only in offline playback on any device:

04:49:30.769 E Playback error (Ask Gemini)
androidx.media3.exoplayer.ExoPlaybackException: MediaCodecAudioRenderer error, index=1, format=Format(audioaudio_aac@192000, audio, audio/mp4, audio/mp4a-latm, mp4a.40.2, 192000, und, [-1, -1, -1.0, null], [2, 48000]), format_supported=YES
at androidx.media3.exoplayer.BaseRenderer.createRendererException(BaseRenderer.java:545)
at androidx.media3.exoplayer.BaseRenderer.createRendererException(BaseRenderer.java:514)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:910)
at androidx.media3.exoplayer.RendererHolder.render(RendererHolder.java:391)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1367)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:697)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.os.HandlerThread.run(HandlerThread.java:85)
Caused by: android.media.MediaCodec$CryptoException: Error decrypting data: requested key has not been loaded: ERROR_DRM_NO_LICENSE
cdm err: 5, oem err: 0, ctx: 0
============================== Beginning of DRM Plugin Log ==============================
09-11 04:48:30.622 W Failed to find passthrough drm factories
09-11 04:48:30.622 I No hidl drm factories found
09-11 04:48:31.051 I No hidl drm factories found
09-11 04:48:31.051 W Failed to find passthrough drm factories
09-11 04:48:31.517 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.592 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.592 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.689 I [cdm_engine.cpp(1214):HandleProvisioningResponse] response_size = 3852, security_level = Default
09-11 04:48:31.695 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.696 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.696 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.696 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.697 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.697 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.698 I [cdm_engine.cpp(1073):QueryOemCryptoSessionId] session_id = sid119
09-11 04:48:31.698 I [cdm_engine.cpp(218):OpenSession] New session: session_id = sid119
09-11 04:48:31.699 I [cdm_engine.cpp(2300):SetPlaybackId] session_id = sid119, playback_id = Vah9ZcZF95wG162v
09-11 04:48:31.699 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid119
09-11 04:48:31.701 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.701 I [cdm_engine.cpp(305):GenerateKeyRequest] session_id = sid119, key_set_id = , license_type = Streaming
09-11 04:48:31.701 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.734 I [cdm_engine.cpp(218):OpenSession] New session: session_id = sid120
09-11 04:48:31.734 I [cdm_engine.cpp(1073):QueryOemCryptoSessionId] session_id = sid120
09-11 04:48:31.735 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.735 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid120
09-11 04:48:31.735 I [cdm_engine.cpp(2300):SetPlaybackId] session_id = sid120, playback_id = Vah9ZcZF95wG162v
09-11 04:48:31.735 I [cdm_engine.cpp(305):GenerateKeyRequest] session_id = sid120, key_set_id = , license_type = Streaming
04:49:30.769 E 09-11 04:48:31.735 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:31.771 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:48:31.772 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid120
09-11 04:48:31.804 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:48:31.812 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid119
09-11 04:48:32.543 I [cdm_engine.cpp(384):AddKey] session_id = sid119, key_set_id =
09-11 04:48:32.578 I [cdm_engine.cpp(384):AddKey] session_id = sid120, key_set_id =
09-11 04:48:39.252 I [cdm_engine.cpp(263):CloseSession] session_id = sid119
09-11 04:48:39.260 I [cdm_engine.cpp(263):CloseSession] session_id = sid120
09-11 04:48:39.273 I [oemcrypto_adapter_dynamic.cpp(888):Level1Terminate] L1 Terminate
09-11 04:48:39.273 I [(0):] L3 Terminate.
09-11 04:48:42.559 W Failed to find passthrough drm factories
09-11 04:48:42.559 I No hidl drm factories found
09-11 04:48:42.561 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:48:42.561 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:42.561 I [oemcrypto_adapter_dynamic.cpp(826):Initialize] Level 3 Build Info (v18): {"soc_vendor":"L3_33098","soc_model":"ARM 64 bit","ta_ver":"18.1.0+May 14 2024_19:04:52_","uses_opk":false,"tee_os":"none","tee_os_ver":"0.0.0","form_factor":"L3","implementer":"Widevine","fused":false}
09-11 04:48:42.561 I [(0):] Level3 Library 33098 May 14 2024 19:04:52
09-11 04:48:42.563 I [oemcrypto_adapter_dynamic.cpp(841):Initialize] L3 Initialized. Trying L1.
09-11 04:48:42.948 I [oemcrypto_adapter_dynamic.cpp(875):Initialize] Level 1 Build Info (v19): {"soc_vendor": "samsung", "soc_model": "SM-S936U1", "fused": "locked", "tee_os_ver": "150000", "tee_os": "strongbox", "uses_opk": false, "implementer": "Qualcomm", "ta_ver": "1.186", "ree": {"liboemcrypto_ver": "1.93"}}
09-11 04:48:42.948 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.037 W Failed to find passthrough drm factories
09-11 04:48:43.037 I No hidl drm factories found
09-11 04:48:43.038 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:48:43.039 I [(0):] L3 Terminate.
09-11 04:48:43.039 I [oemcrypto_adapter_dynamic.cpp(888):Level1Terminate] L1 Terminate
09-11 04:48:43.052 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.052 I [oemcrypto_adapter_dynamic.cpp(826):Initialize] Level 3 Build Info (v18): {"soc_vendor":"L3_33098","soc_model":"ARM 64 bit","ta_ver":"18.1.0+May 14 2024_19:04:52_","uses_opk":false,"tee_os":"none","tee_os_ver":"0.0.0","form_factor":"L3","implementer":"Widevine","fused":false}
09-11 04:48:43.052 I [(0):] Level3 Library 33098 May 14 2024 19:04:52
09-11 04:48:43.053 I [oemcrypto_adapter_dynamic.cpp(841):Initialize] L3 Initialized. Trying L1.
09-11 04:48:43.415 I [oemcrypto_adapter_dynamic.cpp(875):Initialize] Level 1 Build Info (v19): {"soc_vendor": "samsung", "soc_model": "SM-S936U1", "fused": "locked", "tee_os_ver": "150000", "tee_os": "strongbox", "uses_opk": false, "implementer": "Qualcomm", "ta_ver": "1.186", "ree": {"liboemcrypto_ver": "1.93"}}
09-11 04:48:43.416 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.416 I [cdm_usage_table.cpp(203):RestoreTable] Found usage table to restore: entry_count = 0
09-11 04:48:43.438 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.439 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.439 I [cdm_engine.cpp(1073):QueryOemCryptoSessionId] session_id = sid121
09-11 04:48:43.439 I [cdm_engine.cpp(218):OpenSession] New session: session_id = sid121
09-11 04:48:43.439 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.439 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.439 I [file_utils.cpp(38):Exists] stat failed: ENOENT
04:49:30.769 E 09-11 04:48:43.439 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.440 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid121
09-11 04:48:43.441 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.441 I [cdm_engine.cpp(305):GenerateKeyRequest] session_id = sid121, key_set_id = , license_type = Offline
09-11 04:48:43.441 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.645 I [cdm_engine.cpp(384):AddKey] session_id = sid121, key_set_id =
09-11 04:48:43.673 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:48:43.675 I [cdm_engine.cpp(452):AddKey] key_set_id = ksid7934DA65
09-11 04:48:43.676 I [cdm_engine.cpp(263):CloseSession] session_id = sid121
09-11 04:48:49.575 I [oemcrypto_adapter_dynamic.cpp(888):Level1Terminate] L1 Terminate
09-11 04:48:49.575 I [(0):] L3 Terminate.
09-11 04:49:30.233 I No hidl drm factories found
09-11 04:49:30.233 W Failed to find passthrough drm factories
09-11 04:49:30.235 I [oemcrypto_adapter_dynamic.cpp(826):Initialize] Level 3 Build Info (v18): {"soc_vendor":"L3_33098","soc_model":"ARM 64 bit","ta_ver":"18.1.0+May 14 2024_19:04:52_","uses_opk":false,"tee_os":"none","tee_os_ver":"0.0.0","form_factor":"L3","implementer":"Widevine","fused":false}
09-11 04:49:30.235 I [(0):] Level3 Library 33098 May 14 2024 19:04:52
09-11 04:49:30.235 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:49:30.235 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.236 I [oemcrypto_adapter_dynamic.cpp(841):Initialize] L3 Initialized. Trying L1.
09-11 04:49:30.612 I [oemcrypto_adapter_dynamic.cpp(875):Initialize] Level 1 Build Info (v19): {"soc_vendor": "samsung", "soc_model": "SM-S936U1", "fused": "locked", "tee_os_ver": "150000", "tee_os": "strongbox", "uses_opk": false, "implementer": "Qualcomm", "ta_ver": "1.186", "ree": {"liboemcrypto_ver": "1.93"}}
09-11 04:49:30.613 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.618 W Failed to find passthrough drm factories
09-11 04:49:30.618 I No hidl drm factories found
09-11 04:49:30.619 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:49:30.630 I [cdm_usage_table.cpp(203):RestoreTable] Found usage table to restore: entry_count = 0
09-11 04:49:30.659 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.660 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.660 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.660 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.661 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.661 I [file_utils.cpp(38):Exists] stat failed: ENOENT
09-11 04:49:30.661 I [cdm_engine.cpp(218):OpenSession] New session: session_id = sid122
09-11 04:49:30.661 I [cdm_engine.cpp(1073):QueryOemCryptoSessionId] session_id = sid122
09-11 04:49:30.661 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid122
09-11 04:49:30.662 I [cdm_engine.cpp(2300):SetPlaybackId] session_id = sid122, playback_id = OueUC_1_7p4SbfCR
09-11 04:49:30.662 I [cdm_engine.cpp(476):RestoreKey] session_id = sid122, key_set_id = ksid7934DA65
09-11 04:49:30.723 I [cdm_engine.cpp(1009):QueryKeyStatus] session_id = sid122
09-11 04:49:30.725 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:49:30.725 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid122
09-11 04:49:30.755 I [cdm_engine.cpp(1112):IsSecurityLevelSupported] level = L1
09-11 04:49:30.756 I [cdm_engine.cpp(978):QuerySessionStatus] session_id = sid122
09-11 04:49:30.765 E [policy_engine.cpp(60):CanDecryptContent] Provided content key is not in license: key_id = BA3C242A0A45EBB747815D17DEC71EC6
============================== End of DRM Plugin Log ==============================

Media

Will email media data.

Bug Report

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions