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 (isFatal flag)
  • 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

DataDescription
Error messageThe thrown error message or exception text
Stack traceFull JavaScript call stack
isFatal flagWhether the error killed the JS thread
BreadcrumbsRecent user actions and navigation events
TimestampUTC timestamp of the crash
Screen contextWhich 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.

Related