Detect Where the App Crash Originates
This document helps you determine whether a crash in your app originates from your code or Amazon's code. Understanding the source of a crash is crucial for efficient debugging and deciding when to contact Amazon support.
Prerequisites
Before analyzing crash sources, read Debug App Crash Using Vega Studio to learn how to pull and symbolicate aggregated crash report (ACR) files from your device.
@amzn/
string in path instead of @amazon-devices/
.Stack traces and stack frames
Stack traces are the sequence of functions that occurred leading up to the crash, while stack frames are the individual function calls that make up the stack trace.
Native stack frames
For native crashes, stack frames include frame number, address of the function, and library name corresponding to the address.
If debug symbols are available, the frame can also show function name, file where the function is located, and line number in the function where the address corresponds.
Example of a native stack frame:
#0 0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/kepler/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33
JavaScript stack frames
For JavaScript, stack frames include function name, file where the function is located, and line number.
Example of a JavaScript stack frame:
at onPress (node_modules/@amazon-devices/react-native-kepler/Libraries/Pressability/Pressability.js:587:18)
Types of apps and their stack traces
Different types of apps produce different stack traces when they crash. Understanding which type of app you're working with helps you analyze the crash data correctly.
JavaScript-only apps
In JavaScript-only apps, you should only see JavaScript stack traces like this:
TypeError: Cannot read property 'crash' of undefined
at onPress (node_modules/@amazon-devices/react-native-kepler/Libraries/Pressability/Pressability.js:587:18)
[additional stack frames...]
To identify the source in JavaScript stack traces:
Your stack frame points to your app source files and doesn’t include @amazon-devices
.
Example:
/Users/developer_name/workspace/kepler/testapp/VegaProjectApp/src/App.tsx:47:crash
Amazon stack frame includes @amazon-devices
in the path.
Example:
node_modules/@amazon-devices/react-native-kepler/Libraries/...
Mixed JavaScript and native apps
In mixed JavaScript and native apps, you might see native stack traces.
Vega Studio shows one of two types of stack traces:
-
A JavaScript stack trace (if available in the ACR file)
-
A native stack trace (if no JavaScript trace is present)
The automatic symbolicator in Vega Studio prioritizes showing JavaScript traces when they exist in the ACR file.
Example of native stack trace:
#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6
#1 0xb6e8d5d0 in epoll_wait () from /private/var/folders/_p/.../lib/libc.so.6
[additional stack frames...]
To identify the source in native stack traces:
Your stack frame contains your workspace directory and shows your symbol path.
Example:
#0 0xa1a701bc in VegaProjectTMTurboModule::VegaProjectTM::voidFunc (this=0xa1d99838) at /Users/developer_name/workspace/******/testapp/VegaProjectTM/kepler/turbo-modules/VegaProjectTM.cpp:33
Amazon stack frame has no workspace directory reference and shows system paths.
Example:
#0 0xb6e01b26 in ?? () from /private/var/folders/_p/.../lib/libc.so.6
Contact Amazon support
Please contact Amazon support when you see any of the following issues:
- You see native stack traces in a JavaScript-only app
- Stack traces don't reference your code
- In JavaScript stack traces, the topmost frame doesn’t point to your app code
Related topics
- Debug App Crash Using Vega Studio
- Perform Line-by-Line Debugging with Vega Studio
- Debug Your App with Developer Menu Tools
Last updated: Sep 30, 2025