Knowledge base
CodexGuild Knowledge Base

Electron 44: current version and breaking changes since Electron 38

as of Oct 7, 2026 · applies to electron >= 44.0.0 · canonical · codexguild.com/kb/kb-electron-44-breaking-changes-2026 · exported 2026-10-11
Canonical as of Oct 7, 2026

Electron 44: current version and breaking changes since Electron 38

Electron 44 (2026-08-25, Chromium 152, Node 24.18.1) is the latest stable; 44/43/42 are supported. It drops macOS 12 and 32-bit builds and removes renderer access to `clipboard`. Since 42 the npm package no longer downloads the binary in postinstall.

Electron 44: what changed

As of: 2026-10

Current state

  • Latest stable: Electron 44 - v44.0.0 on 2026-08-25, latest patch v44.7.0 (2026-10-07). Stack: Chromium 152.0.7977.54, Node v24.18.1, V8 15.2.
  • Majors ship about every 8 weeks: 40.0.0 (2026-01-16), 41.0.0 (2026-03-11), 42.0.0 (2026-05-06), 43.0.0 (2026-06-30), 44.0.0 (2026-08-25).
  • The latest three stable majors are supported, so today that is 44, 43 and 42 (42.11.12 and 43.7.9 were released alongside 44.7.0). Anything at 41 or below gets no fixes.

Breaking changes by version

44.0

  • macOS 13+ required; macOS 12 is dropped.
  • No more 32-bit builds: Windows ia32 and Linux armv7l are gone; only x64 and arm64.
  • clipboard removed from renderer processes. Use navigator.clipboard, or expose a narrow helper through contextBridge. The main-process clipboard follows the W3C API, so read, write, readText and writeText now return Promises:
// main process, Electron 44
const text = await clipboard.readText();
await clipboard.write([new ClipboardItem({ 'text/plain': 'hi' })]);
  • ANGLE is statically linked, so libEGL/libGLESv2 are no longer shipped as separate files.
  • net.request rejects Sec-Fetch-Dest: document|frame|iframe|fencedframe unless Sec-Fetch-Mode: navigate is also set.
  • webContents may be null in select-client-certificate, which now also fires for net.request/net.fetch.
  • openAsHidden was removed from login item settings, and Unity desktop support on Linux is gone.

43.0: Linux frameless windows get rounded corners by default (roundedCorners: false turns them off). Dialogs default to the Downloads directory. NativeImage.toBitmap() normalizes to sRGB. showHiddenFiles was removed from Linux dialogs.

42.0: electron no longer downloads its binary in postinstall. The binary downloads on first run, so npm install --ignore-scripts works:

npm install electron --save-dev --ignore-scripts
npx install-electron --no        # fetch the binary explicitly, e.g. in CI
ELECTRON_INSTALL_PLATFORM=mas npx electron . --no   # replaces npm --platform

ELECTRON_SKIP_BINARY_DOWNLOAD is no longer supported. On macOS, notifications use UNNotification. Offscreen rendering defaults to a scale factor of 1.0. The quotas option was removed from session.clearStorageData.

41.0: PDFs no longer create a separate WebContents. 40.0: renderer clipboard access deprecated. 39.0: window.open popups are always resizable, and desktopCapturer needs NSAudioCaptureUsageDescription on macOS 14.2+. 38.0: macOS 11 dropped and ELECTRON_OZONE_PLATFORM_HINT removed.

Coming next (main-branch breaking-changes doc)

  • 45: the synchronous safeStorage.encryptString/decryptString/isEncryptionAvailable are deprecated. Sandboxed preloads lose Node module shims and the Buffer/setImmediate globals.
  • 46: the sync safeStorage methods are removed. Migrate now:
if (await safeStorage.isAsyncEncryptionAvailable()) {
  const enc = await safeStorage.encryptStringAsync('secret');
  const { result } = await safeStorage.decryptStringAsync(enc);
}

What to do now

  1. Move to 44 or at least 42. Older majors are unsupported.
  2. Check CI and packaging scripts that relied on the postinstall download or on 32-bit targets.
  3. Audit renderer code for require('electron').clipboard and convert clipboard calls to await.

Sources