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.
Known issue
It's currently not possible to send events from native code (such as a C++ extension). However, crashes will still be reported to Sentry if they happen in a process where the SDK has been configured. Additionally, crash reports from sub-processes may not be reported automatically on all platforms. This feature will be added in a future SDK update.
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:
- Go Project Settings > Debug Files
- Select
Electronfrom the Built-in Repositories - 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 tag | macOS | Windows | Linux | |
|---|---|---|---|---|
Electron main process | browser | ✓ | ✓ | ✓ |
Electron renderer process | renderer | ✓ | ✓ | ✓ |
Electron utilityProcess | utility | ✓ | ✓ | ✓ 1 |
child_process.fork | node | ✓ | ✓ | |
child_process.exec/spawn | unknown | ✓ |
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:
const { crashReporter } = require("electron");
crashReporter.start({
companyName: "YourCompany",
productName: "YourApp",
ignoreSystemCrashHandler: true,
submitURL: "___MINIDUMP_URL___",
});
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").