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
Skip to main content
The aggregated crash report (ACR) summary organizes all crash debugging data into a single markdown file. Vega Studio generates the summary automatically at the end of every symbolication.

Prerequisites

Understanding ACR file and summary report

The ACR file and the summary report serve different purposes and aren’t the same file.

How to use the summary

Vega Studio automatically opens the summary in a new tab once symbolication completes. To diagnose crashes:
  1. Inspect crash metadata Start with Metadata - Check the crash reason and language to understand what type of crash occurred.
  2. Locate app functions in stacktraces Examine Symbolicated Stacktraces - Look for function names from your app code in the stack trace.
  3. Review crash-time memory usage Review System Info - Check memory usage at crash time.
  4. Cross-reference with source code - Use the file paths and line numbers from the stack trace to locate the problematic code in your project.
  5. Determine next steps:
    • If the crash is in your app code, fix the issue and test
    • If the crash is in OS code or you see only system frames, contact Amazon support with the ACR file
    • If you’re unsure, see Crash source analysis for guidance
    • If symbolication failed or the summary is incomplete, see Fix Crash Analysis Issues

Summary structure

The following sections describe the components of the summary and what information each contains.

File header

Contains the file path to the ACR file and the path to the related temporary working directory. Use these paths to find the original crash file and intermediate symbolication files. Example:

Metadata

This section contains relevant metadata from the ACR file:
  • PROCESS - The process that crashed. Example: com.example.myapp or /usr/bin/eventmgrd
  • CRASH_REASON - The reason for the crash. See Crash reason reference for a complete list of crash reasons and their descriptions.
  • CRASH_LANG - The programming language of the crashed code. Possible values: Native, JavaScript, or unknown. The ACR file reports “Unknown” in ANR cases when the crashing thread ID matches the JavaScript thread ID. The block can occur in either native or JavaScript code, so the tool can’t determine the language automatically.
  • APP_VERSION - The app version that crashed. Example: 1.2.3 or 2024.11.15
  • OS_BUILD_NUMBER - The OS build number from which the ACR file was generated. Example: 1001010003820
  • BUILD_VARIANT - The build type from which the ACR file was generated. Possible values: user, userdebug, or user-external.

Crash reason reference

The following table lists the crash reasons you may see in the CRASH_REASON field, what triggered the termination, and whether the ACR file includes a minidump and stack trace.

OS release file

Contains the contents of /etc/os-release collected by the ACR file. This information helps you verify the exact OS version and build configuration where the crash occurred, which is useful when reproducing issues or determining if a crash is OS-specific.

Symbolicated stacktraces

This section contains the decoded stack traces that show the exact location and sequence of function calls leading to the crash. The crash language determines which stack traces appear in this section:
  • JavaScript crashes: Only the JavaScript stack trace displays
  • Native crashes: Only the native stack trace displays by default

Reading stack frames

A stack trace shows the sequence of function calls that led to the crash. Each line in the trace is a stack frame. Native stack frames include a frame number, a memory address, and a library name. If debug symbols are available, the frame also shows the function name, the source file, and the line number.
JavaScript stack frames include the function name, the source file, and the line number.

Understanding ?? in stack traces

When you see ?? in a native stack frame, the symbolication tool couldn’t resolve the function name at that memory address. This means debug symbols aren’t available for that location. By examining the context of the adjacent stack frames, you can determine whether this corresponds to app code or OS-level/system library code.
Frames with ?? aren’t a bug in your app. They represent system code that runs without exported debug symbols. Focus on frames that show your app’s file paths and function names. To determine whether a crash originates from your code or Amazon’s code, see Detect Where the App Crash Originates.

Low Memory Killer (LMK) crashes

LMK crashes don’t produce a stack trace because the OS kills the process externally rather than the process crashing itself. The CRASH_REASON field shows LowMemoryKiller for these crashes. Related Resource Manager terminations like LowCPUKiller and LRUDepthMaintenance also lack stack traces—see the Crash reason reference for the full list. If the symbolicated stacktraces section is empty and the crash reason indicates a Resource Manager termination:
  1. Skip the stacktraces section.
  2. Check System Info for memory pressure data—look at the top 5 memory-consuming processes and pressure info stats.
  3. If your app appears in the top memory consumers, investigate potential memory leaks, large image buffers, or excessive caching in your code.

ReclaimMediaResource crashes

A ReclaimMediaResource crash reason indicates the OS terminated your app because it didn’t release native media playback resources (such as media decoders or video surfaces) when sent to the background. The OS reclaims these resources for other apps. This crash occurs when your AppState background handler uses async/await to sequence resource cleanup. The KeplerScript runtime suspends the JavaScript thread after the background transition, so any work after an await may never execute. As a result, native media resources aren’t released and the OS terminates the app. To fix this issue, release native media resources synchronously in your AppState background handler before any async operations. For details, see Transition App State between Background and Foreground.

Crash source analysis

For non-ANR crashes, the summary indicates whether the crash likely originated from app code or OS code. The tool analyzes the symbolicated stack traces to determine the crash source:
  • Crash possibly in the app layer: The stack trace references app code. Review the stack trace for details. Example: Stack trace shows MyApp.handleUserInput() or com.example.myapp.MainActivity.onCreate()
  • Crash possibly in the OS layer: The tool found no app-related frames in the stack trace. Contact Amazon support. Example: Stack trace shows only system calls like __libc_do_syscall() or binder_call_internal()

System info

This section shows system information recorded in the ACR file at the time of the crash, including:
  • Top 5 memory-consuming processes from the section Example: If your app uses 250MB and appears in the top 5, memory pressure may be a factor
  • Pressure info stats from the section Example: High memory pressure values indicate the system was low on available memory

Native stacktrace - all threads

This section shows the native stack trace for all threads. You can generate this trace by running thread apply all bt in the interactive GDB session.

Example

Example of an unrendered ACR summary:

Troubleshooting

If you encounter issues with ACR analysis or symbolication, see Fix Crash Analysis Issues.
Last modified on June 18, 2026