The crashes that hurt most are the ones you never see. In a React Native app, a fatal JavaScript exception can kill the process before the error report leaves the device. The user sees the app close, you see nothing, and your crash-free rate looks healthier than it really is.
On 2 October 2026, PostHog’s changelog announced that Error Tracking for React Native now preserves fatal JavaScript exceptions through process crashes and reports them later. That closes a long-standing blind spot, but it also changes your baseline: the first week after you upgrade, your fatal error numbers may jump. That is not a regression. It is data you were previously missing.
Without a plan, teams misread that jump as a bad release, or worse, never notice that their historical crash numbers were understated.
Data Points to Track
- fatal_error_count: fatal exceptions per release, split by platform (iOS, Android)
- recovered_report_flag: whether the report was sent live or recovered on the next launch
- report_delay_seconds: time between the crash and the recovered report arriving
- exception_type and exception_message: grouped so repeat offenders surface quickly
- app_version and sdk_version: needed to separate real regressions from the reporting change
- session_id and screen_name: the last screen the user saw before the crash
- crash_free_users_pct: users who did not hit a fatal error in the period
Setup Steps
- Upgrade the PostHog React Native SDK to a version that includes fatal error recovery, and confirm Error Tracking is enabled in your config.
- Record the upgrade date as an annotation in your dashboards so a step change in fatal errors is explained, not investigated.
- Add app_version and sdk_version to every error event so you can compare like with like across releases.
- Tag recovered reports with a property so you can filter them from live reports when comparing against older data.
- Build a fatal error dashboard showing count, crash-free users and top exception groups per release.
- Alert on a rising crash-free-users drop within the first 24 hours of a staged rollout, not on raw counts.
Actionable Insights
If recovered reports make up a large share of fatal errors, your old crash rate was understated. Re-baseline using the post-upgrade period and stop comparing against earlier months.
Long report delays tell you the crash happens early in the process lifecycle, often during startup or native module initialisation. Prioritise those because they hit users before they can do anything in the app.
Exceptions concentrated on one screen point to a specific component or data shape. Exceptions spread across many screens usually point to a shared dependency or a bridge issue after a library upgrade.
Finally, pair fatal error rate with retention. If users who hit a fatal error are far less likely to return within seven days, you have a quantified case for putting crash fixes ahead of new features.
Related Resources
Need help tracking this in your app?
Our team sets up analytics pipelines for mobile and web teams every day. Talk to us and get your first events flowing in under an hour.
Talk to an expert