Bug Description
1. Summary
We are seeing an intermittent crash (~20%, 1/5) when tearing down video playback for AES-128 encrypted HLS streams.
This occurs both in our app and in Amazon’s Vega Video App (sample app) when exiting the playback screen (Back button). The crash happens during playback teardown, specifically while calling:
await VideoPlayer.deinitializeAsync();
The issue does not reproduce with Amazon’s sample non-encrypted streaming URL, but does reproduce with AES-128 encrypted HLS content.
Bug Severity (Select one that applies)
- Impacts operation of app
- Blocks current development
- Improvement suggestion
- Issue with documentation
- Other
2. Steps to Reproduce
- Clone and build Amazon’s Vega Video App (sample app).
- Open
src/w3cmedia/polyfills/W3CMediaPolyfill.ts. - In our environment, AES-128 HLS playback fails unless the MediaCapabilities polyfill is disabled. Please remove/comment out the following lines:
global.navigator.mediaCapabilities = ({}); global.navigator.mediaCapabilities.decodingInfo = decodingInfoImpl; - Replace the playback URL with an AES-128 encrypted HLS (m3u8) stream.
- We can provide the encrypted content URL for reproduction.
- Launch the app and start playback of the AES-128 encrypted HLS stream.
- Wait for a few seconds (e.g., 3–10 seconds).
- Press the Back button to navigate to the previous screen.
- The app crashes immediately after pressing Back, during playback teardown, specifically while calling:
- VideoPlayer.deinitializeAsync()
3. Observed Behavior
- The app intermittently crashes immediately after pressing Back.
- The crash occurs during playback teardown, specifically during VideoPlayer.deinitializeAsync().
- Reproducibility: ~20% (1/5).
Notes:
- Reproduces in Amazon’s Vega Video App sample app with AES-128 HLS.
- Does not reproduce with Amazon’s sample non-encrypted URL.
4. Expected Behavior
The app should not crash when leaving the playback screen.
VideoPlayer.deinitializeAsync() should complete successfully and return to the previous screen normally, regardless of AES-128 encryption.
4.a Possible Root Cause & Temporary Workaround
Temporary workaround:
- None identified so far.
- The crash appears to be related to playback teardown (
VideoPlayer.deinitializeAsync()) when using AES-128 encrypted HLS content.
5. Logs or crash report
-
Crash Log:
crash-var_log.log (20.8 KB) -
Crash Report:
crash_1770026017_5000_5000_10425_191231611_JSThread_698.acr (669.7 KB)
6. Environment
- SDK Version: 0.22.5850
- App State: Foreground
- OS Information:
NAME="OS" OE_VERSION="4.0.0" OS_MAJOR_VERSION="1" OS_MINOR_VERSION="1" RELEASE_ID="14" OS_VERSION="1.1" BRANCH_CODE="TV Ship day60" BUILD_DESC="OS 1.1 (TV Ship day60/4454)" BUILD_FINGERPRINT="4.0.198430.0(3072cab629675a74)/4454N:user-external/release-keys" BUILD_VARIANT="user-external" BUILD_TAGS="release-keys" BUILD_DATE="Sat Dec 20 04:05:59 UTC 2025" BUILD_TIMESTAMP="1766203559" VERSION_NUMBER="1401010445450"
7. Example Code Snippet / Screenshots / Screengrabs
The crash occurs during player teardown when navigating back, specifically while calling:
await VideoPlayer.deinitializeAsync();
Playback Issues
This is a playback teardown crash issue triggered when exiting playback of an AES-128 encrypted HLS stream.
- Player SDK: Shaka Player
- Player SDK Version: 4.8.5
- Audio Codecs: AAC
- Video Codecs: H.264 (MP4)
- Manifest Types: m3u8
Additional Context
This crash is intermittent (~20%) and occurs right after pressing Back, during VideoPlayer.deinitializeAsync().
We confirmed the issue reproduces in Amazon’s Vega Video App after updating the playback URL to an AES-128 encrypted HLS stream.