JS bundle missing from .vpkg when using vega build

:backhand_index_pointing_right: Bug Description


1. Summary

When building a .vpkg using vega build -t armv7 -b Debug, the JS bundle (bundle/index.bundle and bundle/index.hermes.bundle) is not included in the output package. This occurs even when --include-js-bundle true is explicitly specified, despite vega build --help indicating that the default value of --include-js-bundle is true. The same behavior was also confirmed with a Release build (vega build -t armv7 -b Release --include-js-bundle true).
As a result, the app fails to launch.

App Name: vega-video-sample
App Link on Amazon Appstore : N/A

Bug Severity
Select one that applies

  • Impacts operation of app
  • Blocks current development
  • Improvement suggestion
  • Issue with documentation (If selected, please share the doc link and describe the issue)
  • Other

2. Steps to Reproduce

  1. Clone the sample app vega-video-sample
  2. Run npm install
  3. Build with the following command (with --include-js-bundle true explicitly specified)
    1. vega build -t armv7 -b Debug --include-js-bundle true
      
  4. Run the following command against the generated .vpkg
    1. vega exec vpt show-contents build/armv7-debug/keplervideoapp_armv7.vpkg
      
  5. Verify the output β†’ Confirm that bundle/index.bundle and bundle/index.hermes.bundle are not present.(The following is the output.)
    1. assets/image/VideoApp.png
      assets/raw/SplashScreenImages/_loop/loop008.png
      assets/raw/SplashScreenImages/_loop/loop006.png
      assets/raw/fonts/LICENSE-MaterialIcons
      meta-info/build-info.json
      assets/raw/SplashScreenImages/_loop/loop036.png
      assets/raw/fonts/MaterialIcons.ttf
      assets
      assets/raw/SplashScreenImages/_loop/loop037.png
      meta-info/signature/digest.json.sig
      bundle
      assets/raw/SplashScreenImages/_loop/loop020.png
      assets/raw/SplashScreenImages/_loop/loop039.png
      assets/raw/SplashScreenImages/_loop/loop016.png
      assets/raw/SplashScreenImages/_loop/loop015.png
      assets/raw/SplashScreenImages/_loop/loop021.png
      assets/raw/SplashScreenImages/_loop/loop034.png
      assets/raw/SplashScreenImages/_loop/loop028.png
      assets/raw/SplashScreenImages/_loop/loop040.png
      assets/raw/SplashScreenImages
      assets/raw/SplashScreenImages/_loop/loop005.png
      assets/raw/SplashScreenImages/desc.txt
      assets/raw/fonts
      assets/raw/SplashScreenImages/_loop/loop007.png
      assets/image
      assets/raw/SplashScreenImages/_loop
      meta-info/signature
      assets/raw/SplashScreenImages/_loop/loop013.png
      assets/raw/SplashScreenImages/_loop/loop014.png
      assets/raw/SplashScreenImages/_loop/loop031.png
      assets/raw/SplashScreenImages/_loop/loop018.png
      assets/raw/SplashScreenImages/_loop/loop033.png
      assets/raw/SplashScreenImages/_loop/loop000.png
      assets/raw/SplashScreenImages/_loop/loop004.png
      assets/raw/SplashScreenImages/_loop/loop012.png
      assets/raw/SplashScreenImages/_loop/loop045.png
      assets/raw/SplashScreenImages/_loop/loop043.png
      assets/raw/SplashScreenImages/_loop/loop002.png
      assets/raw/SplashScreenImages/_loop/loop001.png
      assets/raw/SplashScreenImages/_loop/loop030.png
      bundle/assets/app.json
      meta-info/signature/digest
      assets/raw/SplashScreenImages/_loop/loop026.png
      assets/raw/SplashScreenImages/_loop/loop029.png
      bundle/assets
      manifest.toml
      assets/raw
      meta-info/signature/digest.sig
      assets/raw/keplerscript-app-config.json
      assets/raw/SplashScreenImages/_loop/loop011.png
      assets/raw/SplashScreenImages/_loop/loop009.png
      assets/kepler-sdk-version
      assets/raw/SplashScreenImages/_loop/loop044.png
      assets/raw/SplashScreenImages/_loop/loop024.png
      assets/raw/SplashScreenImages/_loop/loop017.png
      assets/raw/SplashScreenImages/_loop/loop022.png
      assets/raw/SplashScreenImages/_loop/loop010.png
      meta-info/signature/digest.json
      assets/raw/SplashScreenImages/_loop/loop041.png
      assets/raw/SplashScreenImages/_loop/loop035.png
      assets/raw/SplashScreenImages/_loop/loop025.png
      assets/asset-index.bin
      assets/raw/SplashScreenImages/_loop/loop003.png
      meta-info
      assets/raw/SplashScreenImages/_loop/loop027.png
      assets/raw/SplashScreenImages.zip
      assets/raw/SplashScreenImages/_loop/loop032.png
      assets/raw/SplashScreenImages/_loop/loop038.png
      assets/raw/SplashScreenImages/_loop/loop019.png
      assets/raw/SplashScreenImages/_loop/loop042.png
      assets/raw/SplashScreenImages/_loop/loop023.png
      
  6. Confirm the issue also reproduces with a Release build:
    1. vega build -t armv7 -b Release --include-js-bundle true
      
    2. vega exec vpt show-contents build/armv7-release/keplervideoapp_armv7.vpkg
      
    3. β†’ Confirm that bundle/index.bundle and bundle/index.hermes.bundle are not present

3. Observed Behavior

Even when --include-js-bundle true is explicitly specified, the output of vega exec vpt show-contents does not contain bundle/index.bundle or bundle/index.hermes.bundle for either Debug or Release builds.

4. Expected Behavior

Since the default value of --include-js-bundle is documented as true, running vega build -t armv7 -b Debug/Release is expected to produce a .vpkg that includes both bundle/index.bundle and bundle/index.hermes.bundle.

For reference, the following command produces a .vpkg that correctly includes the JS bundle:

npx react-native build-kepler --build-type Debug --target armv7

Example show-contents output when built with react-native build-kepler :white_check_mark::

bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_jump_forward_10_144dp.png
assets/raw/SplashScreenImages/_loop/loop028.png
assets/raw/SplashScreenImages/_loop/loop043.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common
assets/raw/SplashScreenImages/_loop/loop015.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_jump_back_10_144dp.png
bundle/assets/src/blocks/assets
assets/raw/SplashScreenImages/_loop/loop019.png
bundle/assets/node_modules/@amazon-devices/react-navigation__drawer
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/back.png
bundle/assets/node_modules
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/error.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/caret-down.png
assets/raw/SplashScreenImages/_loop/loop029.png
assets/raw/SplashScreenImages/_loop/loop041.png
bundle/assets/src/assets/movie-content/tile01.jpg
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox
assets/kepler-sdk-version
assets/raw/SplashScreenImages/_loop/loop031.png
assets/raw/SplashScreenImages/_loop/loop004.png
assets/raw/SplashScreenImages/_loop/loop037.png
assets/raw/SplashScreenImages/_loop/loop020.png
bundle/assets/src/assets/movie-content/tile09.jpg
bundle/assets/src/assets/fast_forward.png
bundle/assets/node_modules/@amazon-devices/react-native-kepler
meta-info/build-info.json
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_caption_off.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_disable_loop.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src
assets/raw/SplashScreenImages/_loop/loop008.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/check.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/rating_full.png
assets/raw/SplashScreenImages/_loop/loop023.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets
meta-info/signature/digest.json
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_play_144dp.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_pause_144dp.png
assets/image/VideoApp.png
bundle/assets/node_modules/@amazon-devices/react-navigation__drawer/src
assets/raw/SplashScreenImages/_loop/loop010.png
bundle/assets/src/blocks
assets/raw/SplashScreenImages/_loop/loop014.png
bundle/assets/node_modules/@amazon-devices/react-navigation__drawer/src/views
bundle/task.hermes.bundle
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/caret-up.png
bundle/assets/src/assets/user_example_icon.png
bundle/assets/node_modules/@amazon-devices
bundle/assets/src/assets/movie-content/tile14.jpg
bundle/assets/src/assets/movie-content/tile13.jpg
bundle/assets/src/assets/movie-content/tile19.jpg
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_volume_unmute.png
bundle/assets/src/assets/movie-content/tile15.jpg
assets/raw/SplashScreenImages/_loop/loop025.png
assets/asset-index.bin
bundle/assets/src/assets/movie-content/tile16.jpg
bundle/assets/node_modules/@amazon-devices/react-navigation__elements/src
assets/raw/SplashScreenImages/_loop/loop026.png
bundle/task.bundle
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image
bundle/index.bundle
bundle/assets/src/assets/play_solid.png
bundle/assets/src
meta-info/signature/digest.json.sig
meta-info/signature
assets
bundle/index.hermes.bundle
bundle/assets
bundle/assets/node_modules/@amazon-devices/react-navigation__elements/src/assets
assets/raw/SplashScreenImages/_loop/loop016.png
bundle/assets/src/assets/movie-content/tile08.jpg
assets/raw/SplashScreenImages/_loop/loop011.png
bundle/assets/src/assets/add_solid.png
bundle/assets/src/assets/rewind.png
bundle/assets/src/assets/movie-content/tile17.jpg
bundle/assets/src/assets/movie-content/tile03.jpg
bundle/assets/src/assets/movie-content/tile06.jpg
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/rating_half.png
bundle/assets/src/assets/mini_details_left_gradient.png
assets/raw/fonts/MaterialIcons.ttf
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages/loader.png
assets/raw/SplashScreenImages/desc.txt
manifest.toml
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_caption_greyed.png
assets/raw/SplashScreenImages/_loop/loop007.png
bundle/assets/src/assets/movie-content
assets/raw/SplashScreenImages/_loop/loop030.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/cancel.png
bundle/assets/app.json
bundle/assets/src/assets/movie-content/tile21.jpg
bundle/service.bundle
assets/raw/SplashScreenImages/_loop/loop017.png
assets/raw/SplashScreenImages/_loop/loop036.png
assets/raw/keplerscript-app-config.json
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_enable_loop.png
bundle/assets/node_modules/@amazon-devices/react-navigation__drawer/src/views/assets/toggle-drawer-icon.png
assets/raw/SplashScreenImages/_loop/loop000.png
assets/raw/SplashScreenImages/_loop/loop044.png
bundle/assets/src/assets
bundle/assets/node_modules/@amazon-devices/react-navigation__elements/src/assets/back-icon.png
assets/raw/SplashScreenImages/_loop/loop040.png
assets/raw/SplashScreenImages/_loop/loop034.png
assets/raw/SplashScreenImages/_loop/loop022.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages/chevron-right.png
bundle/assets/src/assets/movie-content/tile02.jpg
assets/raw/SplashScreenImages.zip
bundle/assets/src/assets/transaction_solid.png
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist/src/assets/common/rating_empty.png
meta-info
assets/raw/SplashScreenImages/_loop/loop039.png
meta-info/signature/digest
assets/raw/fonts
bundle/service.hermes.bundle
assets/raw/SplashScreenImages/_loop/loop033.png
bundle/assets/src/assets/movie-content/tile07.jpg
assets/raw/fonts/LICENSE-MaterialIcons
bundle/assets/node_modules/@amazon-devices/react-navigation__elements
assets/raw/SplashScreenImages/_loop/loop038.png
bundle/assets/src/assets/movie-content/tile05.jpg
bundle/assets/src/assets/movie-content/tile12.jpg
bundle/assets/node_modules/@amazon-devices/kepler-ui-components/dist
bundle/assets/src/assets/movie-content/tile10.jpg
bundle/assets/src/assets/movie-content/tile11.jpg
assets/image
bundle/assets/src/assets/movie-content/tile18.jpg
assets/raw/SplashScreenImages/_loop/loop042.png
assets/raw/SplashScreenImages/_loop/loop024.png
assets/raw/SplashScreenImages/_loop/loop009.png
bundle
assets/raw/SplashScreenImages/_loop/loop002.png
assets/raw/SplashScreenImages/_loop/loop001.png
assets/raw/SplashScreenImages/_loop/loop006.png
bundle/assets/src/assets/hd_outline.png
assets/raw
bundle/assets/src/assets/movie-content/tile20.jpg
bundle/assets/src/assets/delete_icon.png
bundle/assets/src/blocks/assets/primary_nav_expanded_gradient.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_caption_on.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia/image/ic_volume_mute.png
assets/raw/SplashScreenImages/_loop/loop018.png
assets/raw/SplashScreenImages/_loop/loop003.png
assets/raw/SplashScreenImages/_loop/loop021.png
assets/raw/SplashScreenImages/_loop/loop012.png
assets/raw/SplashScreenImages/_loop/loop035.png
assets/raw/SplashScreenImages/_loop/loop032.png
assets/raw/SplashScreenImages/_loop/loop045.png
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages/chevron-left.png
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages
assets/raw/SplashScreenImages/_loop
bundle/assets/node_modules/@amazon-devices/react-navigation__elements/src/assets/back-icon-mask.png
bundle/assets/src/blocks/assets/back_icon.png
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI
bundle/assets/node_modules/@amazon-devices/react-navigation__drawer/src/views/assets
assets/raw/SplashScreenImages/_loop/loop013.png
assets/raw/SplashScreenImages/_loop/loop027.png
bundle/assets/src/assets/movie-content/tile04.jpg
bundle/assets/node_modules/@amazon-devices/react-native-kepler/Libraries/LogBox/UI/LogBoxImages/close.png
assets/raw/SplashScreenImages
bundle/assets/src/assets/nav_drawer_background_gradient.png
bundle/assets/node_modules/@amazon-devices/react-native-w3cmedia
meta-info/signature/digest.sig
assets/raw/SplashScreenImages/_loop/loop005.png

4.a Possible Root Cause & Temporary Workaround

[Temporary Workaround]
Using the following command instead of vega build produces a .vpkg that includes the JS bundle:

npx react-native build-kepler --build-type Debug --target armv7

[Possible Root Cause]
The bundle/ directory may not be included during the packaging of build artifacts.

5. Logs or crash report

N/A

6. Environment

  • SDK Version:

    • Active SDK Version: 0.22.6150
      
      Vega CLI Version: 1.2.18
      
  • 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/4460)"
      BUILD_FINGERPRINT="4.0.227617.0(3072cab629675a74)/4460N:user-external/release-keys"
      BUILD_VARIANT="user-external"
      BUILD_TAGS="release-keys"
      BUILD_DATE="Fri Feb 20 16:02:43 UTC 2026"
      BUILD_TIMESTAMP="1771603363"
      VERSION_NUMBER="1401010446050"
      

7. Example Code Snippet / Screenshots / Screengrabs

# Build where issue occurs (Debug - default)
vega build -t armv7 -b Debug
vega exec vpt show-contents build/armv7-debug/<appname>_armv7.vpkg
# β†’ bundle/index.bundle is not present

# Build where issue occurs (Debug - explicit flag)
vega build -t armv7 -b Debug --include-js-bundle true
vega exec vpt show-contents build/armv7-debug/<appname>_armv7.vpkg
# β†’ bundle/index.bundle is not present

# Build where issue occurs (Release - explicit flag)
vega build -t armv7 -b Release --include-js-bundle true
vega exec vpt show-contents build/armv7-release/<appname>_armv7.vpkg
# β†’ bundle/index.bundle is not present

# Build that works as expected
npx react-native build-kepler --build-type Debug --target armv7
vega exec vpt show-contents build/armv7-debug/<appname>_armv7.vpkg
# β†’ bundle/index.bundle and bundle/index.hermes.bundle are present

Hi @ishijima_tatsuki_1 ,

Thank you for the detailed bug report on the JS bundle missing from .vpkg when using vega build.

Our team is investigating this issue and will provide an update as soon as we have more information.

Thanks for helping us improve the Vega platform.

Warm regards,
Aishwarya

Hello @ishijima_tatsuki_1 ,

This is actually expected behavior. β€œreact-native build-keplerβ€œ is how you build JS apps and how we document how to build JS apps.

vega build is for native building and react-native build-kepler actually uses this command internally in the case for turbo modules.

Thanks for bringing up --include-js-bundle being a part of vega build as this is likely a mistake and will be removed. Will also look into making the command mention that explicitly that it is not used for JS apps (directly).