androidx / androidx/media

Persistent Widevine L3 Playback Failures: OEMCrypto_DecryptCENC failed: status = 36

Open
#2,605 22 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

bug bug: in platform drm
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

Version

Media3 1.6.1

More version details

Hello,
We are encountering a critical and persistent issue affecting Widevine DRM playback in our Android application.
This happens with many kinds of AndroidTV devices.
The problem is 100% reproducible once it starts, and it persists even after standard troubleshooting steps like device reboots and app reinstalls.

The core exception reported by MediaCodec is consistently:
Caused by android.media.MediaCodec$CryptoException: Crypto key not available: 1 (Unknown error -1)

Here's a representative snippet from our crash logs.

6006 ERROR_CODE_DRM_SYSTEM_ERROR
Caused by androidx.media3.exoplayer.s

MediaCodecAudioRenderer error, index=1, format=Format(18, null, audio/mp4, audio/mp4a-latm, mp4a.40.2, 129852, ko, [-1, -1, -1.0, null], [2, 48000]), format_supported=YES

Caused by android.media.MediaCodec$CryptoException
Crypto key not available: 1 (Unknown error -1)
============================== Beginning of DRM Plugin Log ==============================
07-15 12:57:33.971 I found instance=clearkey version=android.hardware.drm@1.4::IDrmFactory
07-15 12:57:33.971 I found instance=playready version=android.hardware.drm@1.4::IDrmFactory
07-15 12:57:33.971 I found instance=widevine version=android.hardware.drm@1.4::IDrmFactory
07-15 12:57:34.709 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.724 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.725 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.730 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.732 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.738 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.740 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.741 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.741 I [cdm_engine.cpp(190):OpenSession] New session: session_id = sid359
07-15 12:57:34.741 I [cdm_engine.cpp(929):QueryOemCryptoSessionId] session_id = sid359
07-15 12:57:34.759 I [cdm_engine.cpp(2044):SetPlaybackId] session_id = sid359, playback_id = uiAE_09h19I1MlmA
07-15 12:57:34.771 I [cdm_engine.cpp(277):GenerateKeyRequest] session_id = sid359, key_set_id = <empty>, license_type = Streaming
07-15 12:57:34.771 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.771 I [file_utils.cpp(40):Exists] stat failed: ENOENT
07-15 12:57:34.982 I [cdm_engine.cpp(834):QuerySessionStatus] session_id = sid359
07-15 12:57:35.222 I [cdm_engine.cpp(834):QuerySessionStatus] session_id = sid359
07-15 12:57:40.212 I [cdm_engine.cpp(356):AddKey] session_id = sid359, key_set_id = <empty>
07-15 12:57:40.340 E [crypto_session.cpp(1692):Decrypt] OEMCrypto_DecryptCENC failed: status = 36
============================== End of DRM Plugin Log ==============================

Can you guys suggest solutions or wokraround?
we would be grateful for any suggestions or guidance on potential troubleshooting steps or temporary workarounds that we could provide to our users.

Thank you!

Devices that reproduce the issue
  • Chromecast Google TV
  • U+tv UHD3
Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps
  1. play drm contents
  2. video start
Expected result

video start playing

Actual result

video start failure with 6006 drm error

Media

a few users with any widevine contents

Bug Report
  • You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.