Skip to main content

Release health

Issues tell you what broke. Release health tells you how many of your users it hit, and whether the release you just shipped is better or worse than the last one.

It is built from sessions: the SDK opens one when the app comes to the foreground (or a request starts, on a server), and closes it with a status. Errora aggregates them per release on the Releases page.

Prerequisites​

  1. A release on every event. The mobile SDKs set it for you — <package>@<versionName>+<versionCode> on Android, <bundleId>@<version>+<build> on iOS. Elsewhere, set release in the SDK init.
  2. Session tracking on. It is on by default in the mobile SDKs (enableAutoSessionTracking) and the browser SDK; don't turn it off.

Sessions are never sampled, spike-limited or billed: they are small, and a crash-free rate computed over a sample would be wrong.

Session statuses​

StatusMeaning
HealthyEnded normally, no error
ErroredAt least one error was captured during the session, but the app didn't crash
CrashedEnded in an unhandled crash
AbnormalEnded without the SDK being able to close it — the OS killed the app, or an ANR on Android

Metrics​

MetricDefinition
Sessions / usersSessions started, and distinct users (the SDK's user or installation id)
Crash-free sessions1 − crashed sessions / sessions
Crash-free users1 − users with a crashed session / users
ANR rateusers with an ANR / users — Android sessions that ended abnormally with anr_foreground or anr_background
AdoptionThe release's share of all sessions in the selected window
Average session durationMean length of sessions that reported a duration
Errored / crashed / abnormalSession counts per status

The Releases page​

Releases in the sidebar lists the releases that sent sessions, each with its adoption, crash-free sessions and users, session and user counts, errored/crashed/abnormal counts, ANR rate and average duration, with a chart of the selected window over time.

Filter by environment and period — 24h, 7d, 14d, 30d or 90d. A new release that loses crash-free users against the previous one is the signal to look at its issues.

Dropped by the SDK​

SDKs also send client reports: counts of what they discarded before it reached Errora, with the reason. The Releases page shows them as Dropped by the SDK:

ReasonTypical cause
Queue overflowThe SDK's send queue was full
before_sendYour beforeSend callback returned null
Sample rateClient-side sampling (sampleRate, tracesSampleRate)
Rate limitsThe SDK was told to back off (429)
Network errorsThe event couldn't be delivered

Rising network errors on mobile are normal on poor connections; a rising before_send or queue-overflow count usually means a configuration change.

Server-mode sessions​

Server SDKs (Python, Node.js and others) don't send a session per request. In request mode they send pre-aggregated session buckets (the sessions envelope item): per time bucket, how many requests ended healthy, errored or crashed. Errora counts them into the same session totals and crash-free rates. Aggregates carry no per-session duration, so only individual sessions feed the average duration.

Troubleshooting​

SymptomCause / fix
The Releases page is emptyNo sessions are arriving — session tracking is off, or release isn't set
ANR rate is always 0 on iOSANR rate is Android-only; iOS hangs show up as App Hang issues
Two releases for one buildThe release string differs between platforms or builds — keep it consistent