Before you continue
Before submitting a bug report, please review our troubleshooting documentation at Troubleshoot Issues | Vega Troubleshooting
If you still want to file a bug report, please make sure to fill in all the details below and provide the necessary information.
NOTE: PLEASE ONLY REPORT A SINGLE BUG USING THIS TEMPLATE.
If you’re experiencing multiple issues, please file a separate report for each.
Bug Description
1. Summary
The JS thread is blocked for multiple seconds during TS parsing of HLS Live streams with CEA 608 imbedded captions.
App Name:
App Link on Amazon Appstore (found through Developer Console → Actions column in App List → View on Amazon.com):
Bug Severity
Select one that applies
- x Impacts operation of app
- Blocks current development
- x Improvement suggestion
- Issue with documentation (If selected, please share the doc link and describe the issue)
- Other
2. Steps to Reproduce
Load an HLS live stream with CEA 608 captionsObserve occasional playback stalls around time of new segment appendVPKG of Vega Video App with test stream will be provided to Amazon contact.
3. Observed Behavior
Explain what actually happened, noting any discrepancies or malfunctions.
We discovered this issue when the timing of a setInterval callback, used for player heartbeat tracking, was wildly off from the expected execution time. The setInterval was set to fire every 100ms, but occasionally the callback will be delayed by upwards of 3000ms. On other platforms, like Chrome on macOS, with this same stream and Shaka version, there is only a variation of 1ms to 2ms for the setInterval execution.
4. Expected Behavior
Describe what you expected the SDK to do under normal operation.
It's understood that there could be some variation in the setInterval callback timing, but 2-3 second is pretty egregious. We expect much quicker processing.
4.a Possible Root Cause & Temporary Workaround
Fill out anything you have tried. If you don’t know, N/A is acceptable
I did some debugging in Shaka Player, it appears the culprit may be the parseNalus method in Shaka's ts_parser.js.
5. Logs or crash report
(Please make sure to provide relevant logs as attachment)
For crash issues, please refer this guide for faster troubleshooting: Detect Where the App Crash Originates | Design and Develop Vega Apps
-
For issues with Kepler Studio Extension, please share log files from below folders:
~/.vscode/extensions/amazon.kepler-extension-<version>/ExtensionLogs ~/.vscode/extensions/amazon.kepler-ui-extension-<version>/ExtensionLogs
6. Environment
Please fill out the fields related to your bug below:
-
SDK Version: 0.20.3719
-
App State:
[Foreground] -
OS Information
Please ssh into the device viakepler exec vda shelland copy the output fromcat /etc/os-releaseinto the answer section below. Note, if you don’t have a simulator running or device attachedkepler exec vda shellwill respond withvda: no devices/emulators foundNAME="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/23)" BUILD_FINGERPRINT="4.0.187607.0(3072cab629675a74)/23N:user-external/release-keys" BUILD_VARIANT="user-external" BUILD_TAGS="release-keys" BUILD_DATE="Fri Nov 21 13:40:13 UTC 2025" BUILD_TIMESTAMP="1763732413" VERSION_NUMBER="1401010002350"
7. Example Code Snippet / Screenshots / Screengrabs
Include any relevant code or component setup in React Native that can help reproduce the bug.
In the vega video app, I updated PlayerScreen.tsx at line 267 with a setInterval so the delay in execution can be observed.
const intervalRef = useRef<number>(Date.now());
const setupEventListeners = useCallback(() => {
setInterval(() => {
const newTime = Date.now();
const currentClockTime = intervalRef.current;
const delta = newTime - currentClockTime;
intervalRef.current = Date.now();
console.log('yyyy setInterval', delta, 'ms');
intervalRef.current = newTime;
}, 100);
if (Platform.isTV) {
BackHandler.addEventListener('hardwareBackPress', navigateBack);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [Platform.isTV]);
Playback Issues
If this is a playback issue, please provide your content URL, any pre-conditions (like geo-location), and let us know if it’s x86 or arm7.
Copied from above:
We discovered this issue when the timing of a setInterval callback, used for player heartbeat tracking, was wildly off from the expected execution time. The setInterval was set to fire every 100ms, but occasionally the callback will be delayed by upwards of 3000ms. On other platforms, like Chrome on macOS, with this same stream and Shaka version, there is only a variation of 1ms to 2ms for the setInterval execution.
Please share the following details in addition:_
- Player SDK:
[Shaka, ...] - Player SDK Version:
[v4.8.5-r1.3]- Audio Codecs:
[AAC] - Video Codecs:
[h.264] - Manifest Types:
[m3u8]
- Audio Codecs:
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
Will provide to Amazon contact.
Q: Are there any special headers required to reproduce the issue you are facing?
n/a
Additionally please provide the following if possible
Provide Screenshots / Screengrabs / Logs. Please include as much information as you can that will help debug.
<!-- Answer here if applicable -->
Additional Context
Any Additional Context you would like to provide?
Add any other relevant information, such as recent updates to the SDK, dependencies, or device OS that may affect the bug.
<!-- Answer here if applicable -->
