electron Errors
20 error patterns
Electron IPC communication failure
Error invoking remote|ipcRenderer.*undefined|ipcMain.*no handler
- •Expose IPC methods via preload script using contextBridge.exposeInMainWorld()
- •Register ipcMain.handle() in main process before renderer sends invoke()
Electron operation on destroyed window
BrowserWindow.*destroyed|Cannot.*call.*method.*destroyed.*window
- •Check win.isDestroyed() before calling methods on the window
- •Remove event listeners that reference the window in the 'closed' event
Electron native module build/compatibility error
native module.*not found|prebuild.*error|node-gyp.*failed|NODE_MODULE_VERSION.*mismatch
- •Rebuild native modules for Electron's Node version: electron-rebuild
- •Use @electron/rebuild or postinstall script: electron-rebuild -f
Electron auto-update failure
autoUpdater.*error|Update.*check.*failed|ENOENT.*app-update\.yml
- •Ensure app-update.yml is included in build output (electron-builder config)
- •Check that update server URL is accessible and returns valid release info
Electron ASAR archive file access error
ASAR.*not found|Cannot read.*asar|ENOTDIR.*\.asar
- •Use path.join(process.resourcesPath, ...) for files outside the ASAR
- •Add files to asarUnpack in electron-builder config for native access
Electron packaging/distribution build failure
Packaging.*error|electron-builder.*failed|NSIS.*error|DMG.*creation.*failed
- •Check electron-builder config in package.json for valid target configuration
- •For NSIS errors on Windows, ensure NSIS is accessible or use portable target
Electron security configuration error
contextIsolation.*security|nodeIntegration.*deprecated|sandbox.*violation
- •Set contextIsolation: true and nodeIntegration: false (secure defaults)
- •Use preload scripts with contextBridge to safely expose APIs to renderer
Electron screen/display API error
screen.*not available|Display.*error|cannot get.*primary display
- •Access screen module only after app 'ready' event fires
- •Import screen from electron in main process only: const { screen } = require('electron')
Electron session/webRequest error
session.*cookie.*error|webRequest.*interceptor.*failed
- •Access session from mainWindow.webContents.session, not before window creation
- •Register webRequest interceptors after session is created and before navigation
Electron Menu template error
Menu.*error|MenuItem.*accelerator.*invalid|template.*not valid
- •Validate menu template structure: { label, submenu, click, accelerator }
- •Use role shortcuts for standard items: 'copy', 'paste', 'quit'
Electron custom protocol registration error
protocol.*register.*failed|custom protocol.*not allowed|registerFileProtocol
- •Register protocols before app 'ready' event using protocol.registerSchemesAsPrivileged()
- •Use protocol.handle() (Electron 25+) instead of deprecated registerFileProtocol
Electron Tray/Notification system error
Tray.*destroyed|nativeImage.*empty|notification.*not supported
- •Keep tray variable reference at module level to prevent garbage collection
- •Use nativeImage.createFromPath() with absolute path to icon file
Electron renderer process crash
crashed.*renderer|renderer.*process.*gone|child process.*exited
- •Listen for 'render-process-gone' event and offer to reload the window
- •Check renderer memory usage — large datasets may cause OOM crashes
Electron dialog used in wrong process
dialog.*not.*main.*process|showOpenDialog.*undefined|cannot use.*dialog.*renderer
- •Use dialog module in main process only, invoke via IPC from renderer
- •Call dialog.showOpenDialog(mainWindow, options) from an ipcMain handler
Electron power monitor error
powerMonitor.*not available|idle.*detection.*error|suspend.*resume.*event
- •Access powerMonitor only after app 'ready' event
- •Use powerMonitor.getSystemIdleTime() for idle detection (returns seconds)
Electron SSL certificate verification error
Unable to verify.*first certificate|net::ERR_CERT|certificate.*error.*electron
- •Handle 'certificate-error' event on the app to allow specific certs in dev
- •Install proper CA certificates in the system trust store
Electron deep link / custom URL scheme not working
deep link.*not registered|protocol.*handler.*missing|open-url.*event
- •Register protocol handler in electron-builder config: protocols.schemes
- •Call app.setAsDefaultProtocolClient('myapp') at startup
Electron webContents navigation failure
webContents.*navigation.*blocked|did-fail-load|ERR_ABORTED
- •Listen for 'did-fail-load' event to handle navigation errors gracefully
- •Check will-navigate event isn't blocking the navigation
Electron safeStorage/keychain error
safeStorage.*not available|encryptString.*error|keychain.*access
- •Check safeStorage.isEncryptionAvailable() before using encrypt/decrypt
- •On Linux, ensure a keyring service (gnome-keyring, kwallet) is available
Electron clipboard/image operation error
clipboard.*error|nativeImage.*format.*unsupported|writeImage.*failed
- •Check nativeImage is not empty before writing to clipboard
- •Use supported formats: PNG for images, UTF-8 text, HTML for rich text