Native Crash Reporting

Learn how Sentry captures and processes native crashes from Electron processes.

Sentry can process Minidumps created when any Electron process crashes. The SDK uploads these files when the application restarts (or immediately after a renderer crash). All event metadata, including user information and breadcrumbs, is included in these uploads.

Due to macOS App Store sandbox restrictions, native crashes can't be collected in Mac App Store builds. Native crash handling is automatically disabled in these environments.

A word on data privacy

Minidumps are memory snapshots of a process at the moment it crashes. They may contain sensitive information, such as environment variables, local path names, or even in-memory data from input fields, including passwords. Sentry does not store these memory dumps. Once processed, Sentry immediately deletes them and strips all sensitive information from the resulting Issues.

To allow Sentry to process native crashes and fully provide symbolicated stack traces, you need to upload Debug Information Files (sometimes also referred to as Debug Symbols or just Symbols). Without these symbols, crash reports will show memory addresses instead of function names and file locations.

For standard Electron apps, enable the built-in Electron Symbol Server in Sentry:

  1. Go Project Settings > Debug Files
  2. Select Electron from the Built-in Repositories
  3. Add symbol servers for the platforms you're deploying to (if needed)

If your application contains custom native extensions or you wish to symbolicate crashes from a spawned child process, upload their debug information manually during your build or release process.

For detailed instructions on uploading and managing debug symbols, see the Debug Information Files documentation.

The SDK relies on the Electron crashReporter to capture crash dumps. To receive crash reports for child processes, make sure the crash reporter is activated by either the SDK or manually (see Manual Crash Reporting below).

Once active, the SDK automatically captures native crashes for the following processes:

event.process tagmacOSWindowsLinux
Electron main processbrowser
Electron renderer processrenderer
Electron utilityProcessutility1
child_process.forknode
child_process.exec/spawnunknown

1 Not supported in Electron v29.4.6.

You can also capture native crashes by manually starting the Electron crashReporter. This approach provides symbolicated stack traces and system information, but doesn't include Electron-specific metadata, breadcrumbs, or context information.

This is useful when you can't use the full Electron SDK:

Copied
const { crashReporter } = require("electron");
crashReporter.start({
  companyName: "YourCompany",
  productName: "YourApp",
  ignoreSystemCrashHandler: true,
  submitURL: "___MINIDUMP_URL___",
});
Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").