getsentry / getsentry/sentry-react-native
feat: Expose crashed last run API
- 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
Assessment
This issue has not been assessed yet.