Once you call crashReporter.start(), Electron collects crashes and, by default, uploads a minidump to the URL you configure. You can keep reports on the device by setting uploadToServer to false. Decide this deliberately, because a crash report is data leaving your users' machines.
How it works
The Electron documentation says Electron uses Crashpad to monitor and report crashes, with the same upload protocol as Breakpad. Call start() early, preferably before the app ready event. Once started, the reporter cannot be disabled, and renderers created before it starts are not monitored. Reports are stored in the directory returned by app.getPath('crashDumps'), and the page notes the file layout is an implementation detail that may change.
What is in the upload
Reports go as a multipart POST to submitURL, gzip compressed unless compress is false. The payload includes:
- Electron and app version fields
- The platform and process type
- A GUID
- The minidump file
globalExtravalues and the crashed process's extra parameters
The documentation warns that Crashpad and Chromium may add other fields that can change without notice.
The settings that matter for privacy
| Setting | Default and effect |
|---|---|
| uploadToServer | Defaults to true; when false, crashes are stored locally and not uploaded |
| rateLimit | Caps uploads at one per hour; extra reports stay on disk |
| extra and addExtraParameter | Apply to the calling process only |
| globalExtra | Fixed once the reporter starts; values are not returned by getParameters |
Parameter keys are limited to 39 bytes and values to 20,320 bytes. The docs say setUploadToServer() has no effect before start() and that the setting would normally be controlled by user preferences.
A privacy checklist
- Decide whether uploads are on by default or opt in. Wire
uploadToServerto a user setting. - Review every value you add through
extraorglobalExtra. Never put tokens, emails or file paths with user names in them. - Know where
submitURLpoints, who operates it and how long reports are kept. - Disclose crash reporting in your privacy notice.
- Protect the crash dump directory like any other local data, since it holds minidumps.
- Remember Mac App Store builds: the documentation says the module is disabled there.
What a minidump may contain
The Electron page gives no detailed statement of a minidump's contents. Minidumps are memory snapshots by nature, so assume they can include data your app held at crash time, and treat them as sensitive until your own review says otherwise.
Try it yourself
The scan demo shows how code is checked for patterns that leak data. Click through it and note what kinds of findings get flagged.
Click through it at your own pace, or open it full screen.
Quick check
Can I turn the crash reporter off after it starts?
The documentation says once started it cannot be disabled. You can stop uploads with uploadToServer set to false.
Are renderer extras sent with main process crashes?
Extra parameters apply only to the process that set them. Main process parameters are not sent with renderer or child process crashes.
Safeguard's code scanning and policy checks can help catch risky data handling before release. A free scan is at gold.safeguard.sh/scan.
Sources
Last reviewed: 19 October 2026.