Skip to main content

RUM ANR

The ANR (Application Not Responding) tab tracks frozen-UI events - periods where the app's main thread was blocked and unresponsive to user input - grouped by the screen where they occurred.

ANR list grouped by screen with Occurrences, Sessions, Users, App Version, and Last Seen columns


ANR List

Table Columns

ColumnDescription
ScreenThe screen the ANR occurred on (or unknown if it couldn't be attributed to a screen)
OccurrencesTotal times an ANR was recorded for this screen
SessionsNumber of distinct sessions affected
UsersNumber of distinct users affected
App VersionVersion most recently associated with this screen's ANRs
Last SeenWhen an ANR was last observed on this screen

The Errors filter category (error.message, crash.kind, crash.type, crash.last_screen) is available here too, alongside the shared Filters sidebar.


ANR Details

Click a screen's ANR group to open the detail view, scoped to a specific occurrence.

Summary Stats

ANR title, badges, and Total Occurrences/Affected Users/Affected Sessions stat cards

Total Occurrences, Affected Users, and Affected Sessions for the selected screen and time range.

Occurrence Breakdown

Occurrences by App Version, OS Version, and Device Model charts

Here - unlike the list page - occurrences are broken down by App Version, by OS Version, and by Device Model, each with the usual multi-line-chart-plus-table pattern. This is where you find out which builds and devices freeze most often for this screen.

Attributes

Attributes panel showing app., device., session.*, and other grouped attributes

A grouped attribute panel:

GroupExample attributes
app.*app.build, app.bundle_id, app.version
crash.*crash.type (anr)
device.*device.brand, device.manufacturer, device.model.name, device.locale, device.orientation, device.type
error.*error.message (for example "Application Not Responding")
os.*os.name, os.version, os.build
screen.*screen.name
service.*service.name, service.version
session.*session.id, session.sample_rate, session.start_time, session.type
telemetry.sdk.*telemetry.sdk.name, telemetry.sdk.language, telemetry.sdk.version
user.*user.anonymous_id

Stack Trace (Main Thread) and All Threads

Stack Trace (Main Thread) frames and All Threads list with state badges and frame counts

The Stack Trace (Main Thread) panel shows where the main thread was blocked. Below it, All Threads lists every thread with its state (RUNNABLE, TIMED_WAITING, WAITING) and frame count - expand a thread to see its own stack. This is how you find which thread was holding the lock the main thread was waiting on.

As with crash stack traces, frames resolve to readable file, line, and symbol names once the matching debug artifacts for that build have been uploaded.

Breadcrumbs table with Time, Type, and Message columns

A chronological table (Time, Type, Message) of lifecycle, navigation, and tap events leading up to the freeze.

Affected Devices and Affected Users

Affected Devices and Affected Users tables

Same structure as Crashes.

Use View Session Timeline to jump into the full session where the ANR occurred.


Use Cases

Finding the Worst Frozen Screen

  1. Sort the ANR List by Occurrences
  2. Open the top screen and check Occurrences by App Version to see if it's a regression in a specific release
  3. Use All Threads to identify what was blocking the main thread (a RUNNABLE thread holding a lock the main thread is WAITING on is a common culprit)

Confirming a Fix Reduced Freezes

  1. Open the screen's ANR group
  2. Filter to the version containing the fix
  3. Confirm Occurrences by App Version drops for that version

  • Getting Started - Interface layout and shared filters
  • Overview - ANR duration trend alongside crashes and sessions
  • Screens - Per-screen performance, including jank and load time
  • Sessions - Full session timeline for a specific occurrence
  • traceX - Distributed tracing explorer
  • logX - Log explorer with trace correlation
Was this page helpful?