Debug Runtime Issues
This page helps you resolve common issues when apps build successfully but fail during runtime execution. If you don't find a solution to your specific problem here, post an issue in the Developer Forum for additional support.
Metro server fails to start or crashes frequently
Cause: Port conflicts, corrupted cache, or system resource constraints.
Solution:
- Clear the Metro cache:
npx react-native start --reset-cache - Check for port conflicts and use a different port:
npx react-native start --port 8082 - Restart the Metro server with verbose logging:
npx react-native start --verbose - If issues persist, restart your development machine to clear system resources.
The app builds successfully but isn't visible on the device
Cause: The app is running in the background or there are UI rendering issues.
Solution:
-
Check which app is currently in the foreground:
vlcm list - If your app is in the background, bring it to the foreground:
vlcm trigger-app foreground -i <instance_id> - Toggle between background and foreground to refresh:
vlcm trigger-app background -i <instance_id> vlcm trigger-app foreground -i <instance_id>
The app remains invisible after bringing to the foreground
Cause: Multiple apps running on the Metro server or UI code errors. Only one app can use the Metro server at a time.
Solution:
Check for multiple running apps:
-
Press Ctrl+C in the terminal where the Metro server is running to close it.
- Stop the app:
vega device terminate-app - Restart the app:
vega device launch-app
Check for UI code errors:
-
Monitor the Metro server output for errors caused by incompatible React Native packages.
-
Fix the errors in your code. The Metro server automatically rebuilds the bundle after each change.
App crashes at launch with JavaScript bundle errors
Cause: A JavaScript bundle in the system causes conflicts. Your app doesn't appear on the device or in the vlcm list output. The log shows "Requiring unknown module" or "Property __d doesn't exist" errors.
Solution:
-
Capture the device logs:
vega device start-log-stream --device <device name> -
Launch your app using one of these commands:
- If using Vega CLI:
react-native run-app - If using NPM scripts in package.json:
npm run start:vega
- If using Vega CLI:
-
Monitor the log stream for error patterns.
The following examples show common errors related to this issue:
"Requiring unknown module" error:
Uncaught Error: Requiring unknown module "2827612701754778". If you are sure the module exists, try restarting Metro."Property '__d' doesn't exist" error:
E Volta:[VegaScript-Native] Exception occurred in MessageQueue::runAsync: [Property '__d' doesn't exist ReferenceError: Property '__d' doesn't exist at global -
Stop the Metro server by pressing Ctrl+C in the terminal where it's running.
- Clear the Metro cache and restart:
npx react-native start --reset-cache -
Rebuild and relaunch your app.
If the error persists, check for conflicting system bundles. See App crashes or shows blank screen due to system bundle issues for details.
App crashes or shows blank screen due to system bundle issues
Cause: System bundles are missing or misconfigured. The app may also have legacy flags that override the default bundle splitting behavior. A missing system bundle typically means the OS version on the device doesn't match the SDK version used to build the app.
Solution:
-
Run the following commands at the root of your app (where your main
package.jsonis located) to clean caches and update dependencies:Step npm Yarn PNPM Clean cache npm cache clean --forceyarn cache clean --allpnpm cache deleteReset Metro cache npm start -- --reset-cacheyarn start -- --reset-cachepnpm start -- --reset-cacheClean build artifacts npm run cleanyarn cleanpnpm cleanUpdate dependencies npm updateyarn upgradepnpm update -
Run the following command to verify if your app uses system bundles:
vega exec vpt dump {path/to/vpkg} assets/raw/keplerscript-app-config.json > keplerscript-app-config.json -
Open the
keplerscript-app-config.jsonfile. -
Look for the
"systemBundles: {"section. -
Remove legacy bundle splitting flags from your project.
If you previously opted out of bundle splitting, your project may still contain flags that prevent system bundles from working correctly. These flags aren't needed. SDK v0.20 and later enables bundle splitting by default.
- In
package.json, removeuseSystemJsBundlesfrom the"kepler"section. - In build scripts, remove
--split-bundle falseand--use-system-js-bundlesfrom your build commands.
- In
-
If the issue persists, verify that the OS version on your device matches the SDK version used to build the app. If they don't match, update the SDK and rebuild. For build instructions, see Build an App with Vega Studio.
App doesn't include system bundle entries after building
Cause: The app was built in debug mode. Debug builds don't create split bundles, so system bundle entries are only present in release builds.
Solution: Build and submit a release version of your app, not a debug version.
Related topics
- Run Your App
- Build an App with Vega Studio
- Fix Vega Studio Build Issues
- Detect Where the App Crash Originates
- Manage Files, Crash Reports, and Logs
- Fix Debugging Issues
- Resolve Fast Refresh Issues
- Troubleshoot Issues
Last updated: Mar 09, 2026

