getsentry / getsentry/sentry-react-native

feat: Expose crashed last run API

Open
#5,852 2 comments 0 reactions 0 assignees View on GitHub
Errors Feature React-Native
Dominant language
TypeScript
Stars
1.8k
Forks
366
Avg merge
1d 9h
Merged PRs (30d)
89

Description

## Problem Statement

Both native SDKs now provide APIs to check if the previous app session ended in a crash:

- **iOS (Cocoa SDK 9.8.0+):** [`SentrySDK.lastRunStatus`](https://github.com/getsentry/sentry-cocoa/issues/7469) — returns unknown, no-crash, or crash
- **Android:** `Sentry.isCrashedLastRun()` — returns a boolean

There is currently no way to access this information from the React Native (JavaScript) layer.

## Use Cases

- Show a recovery UI (e.g., "Sorry, the app crashed") after restarting from a crash
- Disable experimental features that may have caused a crash
- Send custom analytics or breadcrumbs about crash recovery
- Implement progressive rollout logic that backs off after crashes

## Proposed Solution

Expose a unified JS API, e.g.:

```typescript
import * as Sentry from '@sentry/react-native';

const status = Sentry.lastRunStatus();
// Returns: 'unknown' | 'no-crash' | 'crash'
```

### Implementation Notes

- Bridge `SentrySDK.lastRunStatus` on iOS and `Sentry.isCrashedLastRun()` on Android through the native modules
- Normalize the return value across platforms (iOS has 3 states, Android has a boolean — need to decide on a unified shape)
- Should be callable after `Sentry.init()`

## References

- Cocoa SDK PR: https://github.com/getsentry/sentry-cocoa/issues/7469
- Cocoa SDK bump to 9.8.0: https://github.com/getsentry/sentry-react-native/pull/5847

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.