'keystatuschange' event not triggered when DRM content license expires during playback

:warning: Before you continue



:point_right: Helpful commands to retrieve information


  • System Information

31682400477074:~ tehiroki$ kepler platform doctor
Checking installation status at /Users/tehiroki/.kepler/kntools/sdk/0.17.4
A different location can be specified via environment variable KEPLER_SDK_PATH.

:heavy_check_mark: System: macOS 15.3.2
  Architecture: aarch64
:heavy_check_mark: Rosetta not enabled
:heavy_check_mark: username and token found in knrc file
:heavy_check_mark: git found in the path
:heavy_check_mark: curl found in the path
:heavy_check_mark: Node.js binary compiled for aarch64
:heavy_check_mark: VSCode found in the path
:heavy_check_mark: XCode Command Line Tools is up to date
:heavy_check_mark: /Users/tehiroki/.kepler/kntools/sdk/0.17.4 exists; /Users/tehiroki/.kepler/kntools exists
:heavy_check_mark: licenses and legal notices found in /Users/tehiroki/.kepler/kntools/sdk/0.17.4
:heavy_check_mark: Installed system packages:
  autossh 1.4g
  coreutils 9.6
  glib 2.82.4
  gnutls 3.8.4
  grep 3.11
  jpeg 9f
  libepoxy 1.5.10
  libpng 1.6.45
  libslirp 4.8.0
  libssh 0.11.1
  libusb 1.0.27
  lzo 2.10
  nettle 3.10.1
  openssh 9.9p1
  pixman 0.44.2
  sdl2 2.30.11
  snappy 1.2.1
  tmux 3.5a
  unzip 6.0_8
  vde 2.3.3
  xz 5.6.3
  gnu-sed 4.9
  watchman 2024.12.02.00_2
  zstd 1.5.6
:heavy_check_mark: pyenv version 2.5.3 installed
:heavy_check_mark: python version 3.12.6 installed
:heavy_check_mark: pip version 24.2 installed
:heavy_check_mark: pyenv virtualenv version 1.2.4 installed
:heavy_check_mark: virtualenv 'kepler-0.17.4' created
:heavy_check_mark: Installed Python packages:
  conan 2.0.17
  docopt 0.6.2
  flatbuffers 23.5.26
  langcodes 3.3.0
  psutil 7.0.0
  PyYAML 6.0.1
  tomli 2.0.1
  wheel 0.41.3
  zstandard 0.22.0
:heavy_check_mark: debugger server found
:heavy_check_mark: simulator exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/simulator/tools/runsimulator
:heavy_check_mark: vda version 2.0.2 installed
:heavy_check_mark: Vega Packaging Tools vpt binary exists in /Users/tehiroki/.kepler/kntools/sdk/0.17.4/vegapackagingtool/bin/vpt
:heavy_check_mark: Hermes Compiler binary exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/hermes/072/bin/hermesc
:heavy_check_mark: Corretto JDK version 11.0.20.8.1 installed
:heavy_check_mark: Kepler Performance CLI binaries exist in /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler_perf_cli
:heavy_check_mark: Kepler Studio extensions installed in VSCode
:heavy_check_mark: environment setup file exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/environment-setup-sdk.sh and has correct contents
:heavy_check_mark: /Users/tehiroki/.kepler/kntools/sdk/0.17.4/environment-setup-sdk.sh is sourced from /Users/tehiroki/.bash_profile
:heavy_check_mark: Telemetry Service exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler-telemetry/telemetry. Configuration file exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler-telemetry/config.json. Collection of anonymous usage data is enabled


Kepler CLI prerequisites are all correctly installed.


:point_right: Bug Description


1. Summary

When playing drm content with a license of 30s, the keystatuschange event is not triggered when the key status changes.

Bug Severity

  • Impacts operation of app
  • Blocks current development
  • Improvement suggestion
  • Other

2. Steps to Reproduce

The sample app that I will share with our Amazon contact has been modified from Amazon’s sample app, specifically the classics.ts file, to enable playback of the above content.

After launching the app, please search for “Empire1” in the search screen and play the content that appears in the results.

3. Observed Behavior

The keystatuschange event of the MediaKeySession does not trigger when the license expires during playback.
We are using Shaka version 4.6.18, but due to the aforementioned issue, we are unable to receive the expected Shaka EXPIRED error (6014).
In contrast, a video error event occurs in Kepler. This can be listened for using video.addEventListener(‘error’, () => {}).
As a result, instead of Shaka’s EXPIRED error (6014), a 3016 error occurs.

Additional Information:
In the Kepler Sample App provided by Amazon, we observe the expected 6014 error occurring. This is because the version of shaka-player used in the sample app is v4.3.6, in this version, after an error occurs, tryToRecoverFromError_(), is called to try to switch the variantTrack, and due to this action a 6014 error occurs. This is not the same as expecting a 6014 error to occur after the expiration of the license term.

Shaka Player v4.6.18 keystatuschange event source:

Error Message:

DRM error code:0x68, Internal decrypt failure ] debug info[ /usr/src/debug/amzn-drm-plugins/1.0-r0/git/decrypt-plugin/gstdecrypt.cpp(1645): gst_decrypt_transform (): /GstPipeline:av-player/GstBin:audiodecoder/GstAmznDecrypt:decryptor:\nmsg:Internal decrypt failure

4. Expected Behavior

When the status of all MediaKey statuses changes from ‘usable’ to ‘expired’ after the license expiration date is exceeded, a MediaKeySession keystatuschange event is expected to be responded to, notifying Shaka of the error EXPIRED(6014).

On Chrome and Edge browsers, you can get the expected EXPIRED(6014) error.

4.a Possible Root Cause & Temporary Workaround

N/A

5. Environment

Please fill out

  • SDK Version: [0.17.4]
  • App State: [Foreground]

Prefilled
(no action required)

  • React Native Version: 0.72.0
  • React Version: 18.2.0
  • Platform: TV
  • Device Model(s): [Leave blank]

If it is a player issue, please share the following details in addition:

  • Player SDK: [Shaka]
  • Player SDK Version: [4.6.18]
    • Audio Codecs: [AAC]
    • Video Codecs: [h.264, mp4]
    • Manifest Types: [dash]

6. Example Code Snippet / Screenshots / Screengrabs

import { ExampleComponent } from 'custom-sdk';

<ExampleComponent config={{ key: 'value' }} />

:point_right: Playback Issues


If this is a playback issue, please provide your VPKG and/or content URL, any pre-conditions (like geo-location) [Share privately with your Amazon contact] , and let us know if it’s x86 or arm7.

<!-- Describe your playback issue if applicable -->

Q: Would you like to be contacted to share your latest VPKG compiled with latest SDK:

[Y] [Share privately with your Amazon contact]

Q: VPN or Login needed to verify functionality in VPKG?

[N] [Share privately with your Amazon contact]

Q: If applicable, please provide your media/content url
If this is created dynamically, tokenized, etc please provide a way for us to access it

Content URL:
https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd
License URL:
https://proxy.uat.widevine.com/proxy?video_id=GTS_CAN_RENEW_FALSE_LICENSE_30S_PLAYBACK_30provider=widevine_test

Q: Are there any special headers required to reproduce the issue you are facing?

[N]

Additionally please provide the following if possible

Device Log: ExpiredError.txt (117.5 KB)


:point_right: If you are able to test on a device or simulator


Please ssh into the device via vda shell and copy the output from cat /etc/os-release into the answer section below. Note: if you don’t have a simulator running or device attached vda shell will respond with vda: no devices/emulators found

NAME="OS"
OE_VERSION="4.0.0"
OS_MAJOR_VERSION="1"
OS_MINOR_VERSION="1"
RELEASE_ID="2"
OS_VERSION="1.1"
BRANCH_CODE="VegaMainlineTvIntegration"
BUILD_DESC="OS 1.1 (VegaMainlineTvIntegration/4320)"
BUILD_FINGERPRINT="4.0.20772.0(8ab8eb90727c0d54)/4320N:user-external/release-keys"
BUILD_VARIANT="user-external"
BUILD_TAGS="release-keys"
BUILD_DATE="Tue Mar 11 08:06:21 UTC 2025"
BUILD_TIMESTAMP="1741680381"
VERSION_NUMBER="201010432050"

:point_right: Additional Context


N/A

Hi @fumitaka.ueda.pk ,

Thanks for reporting this to us.
We have reported this to our team for investigation and will get back to you once there is an update.

Regards,
Richa

Hi @fumitaka.ueda.pk ,

Checking in on this.

Please let us know if this is still an issue with the latest 0.20 version.

Thanks,
Rohit

Hi @fumitaka.ueda.pk,

We understand from your Amazon contact that this issue persists in the latest 0.20 SDK release. Our team has this request in the development queue and plans to address it in a future release. We appreciate your patience.

Regards,
Siva

Hi @fumitaka.ueda.pk

Your Amazon POC will get in touch with you regarding the next steps.

Regards,

SJ

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.