Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get Started
Design and Develop
Publish
Reference
Support

Vega SDK Release Notes

Rate your experience with the Vega SDK

Vega SDK version 0.24

The Vega SDK 0.24 release introduces React Native version 0.83 for Vega, a more modern version of React Native which provides improved compatibility, increased performance, and improved developer experience. Additionally, 0.24 enables Developer Mode authentication from CLI, includes a WebView major version upgrade, and introduces a new accessibility-settings Turbo Module.

This release requires OS 1.2 (2101020054720) on your Vega Fire TV Stick, which is compatible with the Vega SDK v0.24.x. You can check your device software version by navigating to My Fire TV > About.

Announcements

React Native 0.83 for Vega is now available

This release includes React Native for Vega on version 0.83 in early access, enabling app and library developers to start migrating their existing React Native 0.72 projects to a more modern version of React Native, with support for many existing React Native community libraries that target Vega, documentation, and refreshed reference applications. For developers just starting their Vega journey, this version includes an updated new app template based on React Native 0.83.

React Native 0.83 includes a variety of new features including React 19 with the React Compiler (eliminating manual memoization), Hermes v1 with improved runtime performance and faster startup, Yoga 3.x for CSS-aligned layout behavior, new React Native DevTools replacing Flipper, approximately 15x faster Metro bundler startup, and new styling properties like boxShadow and filter. The release also enables Density-Independent Pixels (DIP) for consistent UI sizing across screen densities, and the Concurrent Renderer (Fabric) is enabled by default for smoother interactions during complex UI transitions.

React Native 0.72 remains supported, so you can choose to migrate on the timeframe that works for you.

For a list of React Native community libraries compatible with RN 0.83, see Supported Libraries and Services.

Action required: Begin planning your upgrade to 0.83. Your existing RN 0.72 app continues to work as-is. When you're ready to migrate, see the migration guide, AI-powered upgrade tooling, and updated sample apps below to get started.

See React Native for Vega Reference

OS version required in the app manifest

Vega SDK 0.24 requires you to declare the OS target version and minimum version in your app manifest. Vega OS 1.2 is the only available version in this release, so set both versions to 1.2.

To add the versions, run the following command, then rebuild your app:

Copied to clipboard.

vega project update-manifest --os-min 1.2 --os-version 1.2

In this command, --os-min determines which OS version is minimally required for your app to function. The Amazon AppStore prevents apps from being submitted or installed on platforms with a version of Vega OS older than this value. --os-version indicates which Vega OS version is the preferred target version and the one your app has been tested to be compatible with. As new Vega OS versions are introduced in the future, some system behaviors may change and this target version can provide a hint to the system whether to enable fallback behaviors to remain compatible with your app.

The command adds the [os.version] section and the required module entry, then reports what it changed:

📋 OS Version: min=1.2, target=1.2
   OS-version modules: 1 need (at min), 0 wants (up to target)

✅ Updated manifest.toml with the [os.version] block and 1 need. Your @amazon-devices/* package entries are regenerated when you build.

You can also add the section to manifest.toml manually. Add the OS to the [[needs.module]] section and the target and minimum versions in a new [os.version] section, as shown in the following example.

Copied to clipboard.

[[needs.module]]
id = "/com.amazon.vega.os@IVega_1_2"

[os.version]
target = "1.2"
min = "1.2"

If the section is missing, your build fails with an error like the following:

Missing [os.version].target. A Vega application must declare its OS version. Add to manifest.toml: [os.version] target = "<version>" min = "<version>" Or run: vega project update-manifest --os-version <version> --os-min <version>
Missing [os.version].min. Declare both min and target in [os.version].
Vega operation FAILED due to an irrecoverable error: vega build refused: 2 OS-version compliance error(s) in manifest.toml. See above.

Action required: Add the [os.version] section with both min and target set to 1.2.

Support for Intel Mac (x86_64) reaches end of life

SDK 0.24 is the final version that supports Intel Mac (x86_64) and on December 15, 2026, support will reach end of life. You must migrate to Apple Silicon Mac or Ubuntu x86_64 before then to ensure continued access to SDK updates, security patches, and tested builds. This also applies to CI/CD pipelines running on Intel macOS runners.

Experimental APIs are being deprecated

The Vega SDK exposes experimental APIs that are being deprecated as part of the upcoming transition from Open Beta. These experimental APIs remain available in the 0.24 SDK release, but are in the process of being deprecated and will be fully removed.

Action required: If your app uses experimental APIs, plan to migrate off them in future SDK releases.

New features

Authenticate Developer Mode from the CLI

You can now enable Developer Mode on a Vega device directly from the CLI instead of manually allowlisting from the Developer portal. Run vega devmode login to authenticate using developer credentials. Your device is automatically linked to your organization and you can switch organizations at any time.

See Enable Developer Mode

Capture rendered UI from the virtual device

The Vega Virtual Device now lets you copy and paste text into the device and dump its rendered UI contents. You can capture a text-only representation of what’s on screen as well as a complete view-hierarchy tree, saved to a file on your host machine. This brings the virtual device closer to parity with the inspection tools developers expect from other emulators, making it easier to debug layout and focus issues.

See Run apps on the Vega Virtual Device

Parental Controls integration on the virtual device

The virtual device now supports the Parental Controls (PCON) integration so you can exercise parental-control behavior during local development and testing without a physical device.

See Run apps on the Vega Virtual Device

Accessibility settings TurboModule

A new @amazon-devices-scoped accessibility settings TurboModule, KeplerA11ySettingsInterfaceTurbo, gives React Native apps programmatic access to closed-caption styles and other system accessibility settings. Apps that adopt it can query closed-caption font, color, and background style at runtime to render captions that respect the viewer’s system accessibility preferences. Apps that don’t need accessibility settings are unaffected. Reading settings is open to apps. Setting accessibility values is gated by a runtime privilege.

See Vega A11y Settings

Improvements

React Native 0.83 reference apps on GitHub

The public reference apps have been refreshed for React Native 0.83 and published to a dedicated branch of the open-source samples repository. The reference apps demonstrate the RN 0.83 toolchain and serve as the working migration example for teams evaluating the upgrade.

See Sample apps

WebView 4.0.0 for React Native 0.83

WebView in v0.24 is based on Chromium 144 and now supports both React Native tracks: WebView 3.5.7 for RN 0.72 and WebView 4.0.0+ for RN 0.83, shipping at 4.0.2. WebView 4.0.x features include web capabilities (JavaScript alert dialogs, the Web Audio API) and a default cleartext-HTTP security policy. WebView for RN 0.72 will be deprecated in upcoming releases, so migrate apps to RN 0.83 at the earliest opportunity. Update your dependency to "@amazon-devices/webview": "~4.0.2" and run npm install.

See Vega Web Apps

Resolved issues

Apple-Silicon Mac regressions: virtual device, on-device launch, and IDE device detection

A cluster of blockers on Apple-Silicon (M-series) Macs all traced back to a single root cause: a change in the device adapter switched a compression library to dynamic linking, and the dynamic library was absent on developer machines, so the adapter binary crashed on launch. Because so many tools depend on the device adapter, the crash surfaced three ways at once — the virtual device failed to start within its boot deadline, deploying an app to a connected device failed, and connected devices disappeared from the IDE’s device list. Restoring static linking fixed all three.

Debug-variant video playback restored

Debug builds of media applications could hang on a loading screen or play audio with a blank video surface. The cause was a change in how React Native normalizes event names between RN 0.72 and RN 0.83: native media-surface events stopped reaching the JavaScript renderer, so the video surface was never created. The media library now dispatches each event under both naming conventions, restoring playback for debug builds and for older app-bundled apps without requiring any code change on your part.

WebView playback and rendering fixes (WebView 4.0.x)

WebView 4.0.x resolves a set of media and rendering issues on the RN 0.83 track:

  • Fixed video playback that did not fit the video window on certain live streams.
  • Fixed broken playback during protected media playback.
  • Fixed video appearing squished or sized incorrectly after scrolling through content.
  • Fixed video/audio freezing after playing multiple ads in sequence.
  • Fixed Service Worker registration failing due to an invalid user-agent.
  • Fixed a blank screen during Bluetooth audio device transitions.

vega exec tool –version reports the tool version again

A regression introduced in v0.22 caused vega exec <tool> --version to print the CLI/SDK version instead of the underlying tool’s version. The CLI now forwards version and help flags to the target tool unless the first argument is a known CLI command, restoring the expected behavior. If you scripted a workaround, you can simplify it back to vega exec <tool> --version on v0.24.

vega device copy-logs handles a bare artifact name

vega device copy-logs --artifact <name> failed with an irrecoverable error whenever the artifact was passed without a provider suffix, because the SDK substituted undefined for the artifact index. Input is now validated and either resolves correctly or returns an actionable error. The documented artifact/provider long form continues to work unchanged.

Known issues

Chrome DevTools is not supported on React Native 0.83

Chrome DevTools (CDT) debugging is not supported when targeting React Native 0.83. If you are previewing RN 0.83, use React Native DevTools (shipped with RN 0.83) for debugging instead of CDT. This is expected for apps that upgrade to RN 0.83, and does not affect RN 0.72 projects.

The native Cookie Manager (ICookieManager) isn't initialized in this release, so cookie operations — set, get, and clear — fail with a Cookie Manager not found error. The issue results in partial API coverage in the Cookies library. No launch-critical app flows are affected. Full support is planned for a future release.

Core navigation works as expected — screen transitions, stack routing, and tab routing all function correctly. Some minor visual issues remain:

  • A black stripe or overlay appears on screen after you navigate back from a sub-example.
  • Drawer and Material Top Tabs content is shifted left after opening.
  • Text isn't fully visible on some stack navigator screens.

Full visual support is planned for a future release.

Headless tasks crash on React Native 0.83

Apps targeting React Native 0.83 that run a [[components.task]] or [[components.service]] in its own [[processes.group]] can crash on launch with a ReferenceError: Property '__DEV_RUNTIME__' doesn't exist error. Affected headless tasks, such as messaging receivers, EPG sync, and install tasks, fail silently, so background messages aren't delivered and data isn't synced. Interactive app functionality isn't affected. A fix is planned for a future release.

As a temporary workaround, build your headless bundles as self-contained by adding "useSystemJsBundlesForHeadlessJs": false to the kepler section of your app's package.json:

"kepler": {
  "projectType": "application",
  "appName": "YourAppName",
  "targets": ["tv"],
  "useSystemJsBundlesForHeadlessJs": false
}

This bundles all polyfills into the headless task or service directly. The interactive app bundle continues to use system bundles, so its size and startup time are unchanged. Headless bundles are 100–300 KB larger and start slightly slower. This workaround requires KeplerCLIPlatform 0.22.14 or later. Remove the flag once the fix ships.

Important: This workaround is intended to unblock RN 0.83 migration and development. Because it disables system bundle optimization for headless tasks, don't submit an app that uses it to the Appstore. Apps targeting production should ship without the workaround when the fix is available.

The expo-image library can crash at runtime with a Failed auto-linking libexpo-image-2.so: cannot open shared object file: No such file or directory error when you use certain expo-image TurboModule features. An incorrect library name in the autolink configuration causes the crash. A fix is planned for a future release.

setNativeProps isn't supported on React Native 0.83

Apps that call setNativeProps() on React Native 0.83 crash with a TypeError: undefined is not a function error. setNativeProps is a legacy API that the Fabric renderer doesn't support, which matches upstream React Native behavior on iOS and Android.

Action required: Replace setNativeProps() calls with declarative, state-driven props. For example, use React state to update component styles instead of updating them imperatively. This follows React Native's official migration guidance.

Expo libraries not yet stabilized

The following Expo libraries are included in Vega OS, but have not been stabilized or migrated for RN 0.83. They will not function correctly in apps targeting the v0.24 SDK. Developers who rely on these libraries should continue using RN 0.72 until a future release stabilizes them, or consider the alternatives noted below.

  • @amazon-devices/expo-font — no alternative available at this time
  • @amazon-devices/expo-gl — no alternative available at this time
  • @amazon-devices/expo-image-manipulator — no alternative available at this time
  • @amazon-devices/expo-notifications — no alternative available at this time
  • @amazon-devices/expo-splash-screen — use the Vega SplashScreenManager API
  • @amazon-devices/expo-sqlite — no direct alternative; stabilization planned
  • @amazon-devices/expo-system-ui — use root View background color styling

Last updated: Aug 06, 2026