Crash Reporting
The WhatzBug SDK automatically captures JavaScript errors, uncaught exceptions, and fatal crashes with full stack traces and breadcrumbs.
How It Works
The SDK installs a global error handler via ErrorUtils.setGlobalHandler that intercepts all uncaught JavaScript exceptions in your React Native app. Each crash is captured with:
- Error message and stack trace
- Fatal vs non-fatal classification (
isFatalflag) - Breadcrumbs — recent events leading up to the crash
- Device and app context — OS, model, app version, session ID
Enabling Crash Reporting
Crash reporting is enabled by default. You can explicitly control it via the features configuration:
App.tsxtypescript
await WhatzBug.init({
projectId: 'your-project-id',
publishableKey: 'pk_your_key',
features: {
crashes: true, // default: true
},
});Viewing Crashes
Crashes appear in two places:
- Desktop App → Crashes Panel: Real-time crash display with stack trace viewer, breadcrumbs, and fatal/non-fatal badges.
- Cloud Dashboard (Preview): Crash events are batched and sent to the backend for later analysis.
What Gets Captured
| Data | Description |
|---|---|
| Error message | The thrown error message or exception text |
| Stack trace | Full JavaScript call stack |
| isFatal flag | Whether the error killed the JS thread |
| Breadcrumbs | Recent user actions and navigation events |
| Timestamp | UTC timestamp of the crash |
| Screen context | Which screen was active when the crash occurred |
Note
Crash reporting uses
no-throw safety wrappers internally — the SDK crash handler will never itself crash your application.Disabling Crash Reporting
await WhatzBug.init({
projectId: 'your-project-id',
features: {
crashes: false, // disables crash capture
},
});Warning
Symbolication of minified/obfuscated stack traces is not yet available. Stack traces are captured as-is from the JavaScript runtime.