Quick answer: Capture crashes from both the main and renderer processes of your Electron launcher, because a launcher crash blocks players from reaching the game entirely. The process context distinguishes a Node-side failure from a UI-side one, and capturing launcher crashes is critical since they prevent play before it starts.
Many games ship with a launcher, and increasingly those launchers are built with Electron, a web-based framework that bundles Chromium and Node. The launcher handles updates, accounts, news, and starting the game, which means it sits between the player and playing, and when it crashes, the player cannot even reach the game. A launcher crash is uniquely damaging because it blocks play entirely, before the game itself ever runs. Crash reporting for an Electron launcher must capture failures across its main and renderer processes so these launch-blocking crashes are visible and fixable.
The launcher is the gate to your game
A game launcher stands between the player and the game, handling the steps before play: checking for and downloading updates, logging in, showing news, and launching the game itself. This gatekeeping role makes launcher crashes especially serious, because a crash in the launcher does not just disrupt the experience, it prevents the player from reaching the game at all. They cannot play until the launcher works.
This means a launcher crash is a launch-blocking failure with maximum impact, and one that is easy to underestimate because the launcher feels like a peripheral piece of software rather than the game. But to the player, a launcher that crashes is a game they cannot play, which is as bad as the game itself crashing, sometimes worse, because they never even got started. Crash reporting for the launcher is therefore not optional, it is essential to ensuring players can actually reach your game.
Electron has two process types
Electron applications run in two kinds of processes: the main process, which runs Node and controls the application lifecycle, windows, and system interaction, and renderer processes, which run the Chromium-based UI, essentially web pages. Crashes can occur in either, and they are quite different: a main-process crash is a Node-side failure that often takes down the whole launcher, while a renderer crash is a UI-side failure that may crash just a window.
This two-process architecture means your crash reporting must cover both. A crash in the main process and a crash in the renderer have different causes and different impacts, and capturing which process crashed is the first step to understanding a launcher failure. Treating the Electron launcher as the dual-process application it is, rather than as a single program, is essential to capturing and interpreting its crashes correctly.
Capture main process crashes
The main process is the heart of the launcher, running the Node logic that manages updates, downloads, account handling, and launching the game. A main-process crash is typically catastrophic, taking down the entire launcher, and these crashes block play completely. Capture unhandled exceptions and crashes in the main process with the stack trace and context, since these are the most damaging launcher failures.
Main-process crashes often relate to the launcher core jobs: a failed update, a download error, a file operation, a process-launch failure. Capture the context around what the launcher was doing, updating, downloading, launching, when it crashed, so you can see which of the launcher responsibilities is failing. Because the main process controls everything, its crashes are the ones that most directly prevent players from reaching the game, making them the top priority for launcher crash reporting.
Capture renderer process crashes
The renderer processes run the launcher UI as web content, and they crash like web pages do: JavaScript errors, unhandled promise rejections, and the renderer-process crashes that Chromium can experience. A renderer crash might affect just the UI window while the main process keeps running, or it might render the launcher unusable, depending on the launcher structure.
Capture renderer crashes by hooking the JavaScript error handlers and the Electron renderer-crash events, just as you would for any web application but within the Electron context. These crashes are often in the launcher UI logic, the news feed, the account interface, the update display, and capturing them with the process context tells you the failure is on the UI side rather than in the core Node logic, which points to a different kind of fix. Covering both processes ensures no launcher crash, whether Node-side or UI-side, goes unseen.
Setting it up with Bugnet
Bugnet captures crashes from your Electron launcher across both process types, hooking the main-process exception handlers and the renderer JavaScript error and crash events, and tagging each crash with the process it came from. Reports flow into one dashboard where you can see whether a launcher crash is a main-process Node failure or a renderer UI failure, which determines how you investigate it.
Add context for what the launcher was doing, updating, downloading, launching, and the launcher version, and group identical crashes into occurrence counts. Because a launcher crash blocks players from reaching the game, this visibility into launcher failures is critical, surfacing the launch-blocking crashes that you would otherwise only learn about through frustrated players who could not even start the game, and letting you fix the gate so players can actually get through it to play.
Treat launcher stability as game stability
It is tempting to treat the launcher as secondary to the game, but from the player perspective they are one experience, and a launcher that fails is a game they cannot play. Treat launcher crashes with the same seriousness as game crashes, monitoring the launcher crash rate as a measure of whether players can actually reach your game, because a stable game behind a crashing launcher is a game no one plays.
This is especially important because the launcher handles the critical first steps, updating and launching, that every play session depends on. A launcher crash during an update can leave a player unable to play until they figure out a workaround, which many will not, they will just give up. By capturing launcher crashes across both processes and treating launcher stability as integral to game stability, you ensure the gate to your game stays open, which is the prerequisite for everything else, since none of your work on the game itself matters if players cannot get past the launcher to experience it.
A crashing launcher is a game no one can play. Capture both processes and keep the gate open.