Skip to content

feat: error for win32/ia32 and linux/armv7l downloads of Electron >= 44#399

Draft
claude[bot] wants to merge 1 commit into
mainfrom
ia32-armv7l-version-guard
Draft

feat: error for win32/ia32 and linux/armv7l downloads of Electron >= 44#399
claude[bot] wants to merge 1 commit into
mainfrom
ia32-armv7l-version-guard

Conversation

@claude

@claude claude Bot commented Jul 22, 2026

Copy link
Copy Markdown

Requested by Samuel Attard, David Sanders · Slack thread

Before

Electron 44 dropped 32-bit Windows (win32/ia32) and armv7l Linux (linux/armv7l) builds — the first releases without those artifacts are v44.0.0-alpha.4 and v45.0.0-nightly.20260714. Calling downloadArtifact for, say, win32/ia32 on Electron 44+ attempted the download anyway and surfaced a raw, unexplained HTTP 404 from GitHub releases.

After

The same call fails fast with a descriptive error before any network request is made:

Electron v44.0.0 does not have a published win32/ia32 artifact. Electron 44 and newer no longer publish win32/ia32 or linux/armv7l builds; the last release line with 32-bit support is Electron 43, which is supported until January 2027.

Unaffected:

  • Electron <= 43 downloads for both arches (including the 44 prereleases that still shipped them, 44.0.0-alpha.1alpha.3, and nightlies before v45.0.0-nightly.20260714)
  • Custom mirrors (mirrorOptions), which may legitimately host their own 32-bit builds — same scoping as the existing isOfficialLinuxIA32Download check
  • Cache hits — the guard runs after the cache lookup, so previously cached artifacts still resolve

How

  • src/utils.ts: new isOfficialDropped32BitDownload(platform, arch, version, mirrorOptions) mirroring the structure of the existing isOfficialLinuxIA32Download. It compares against 44.0.0-alpha.4 with semver.gte (a plain < 44.0.0 / >= 44.0.0 bound would misclassify the 44 prereleases), and against 45.0.0-nightly.20260714 for nightly versions, since semver orders -nightly after -alpha even though those nightlies predate the drop.
  • src/index.ts: guard in downloadArtifact, placed after the cache-read short-circuit next to the existing linux/ia32 warning. The existing precedent warns rather than throws, but there the artifact still exists for applicable versions — here the artifact is gone entirely, so this throws a descriptive error instead of letting the download 404.
  • src/types.ts: qualified the ia32 / armv7l arch examples in the JSDoc with "(Electron 43 and earlier)".
  • Tests: unit coverage for both arches on both sides of the 44.0.0-alpha.4 boundary, the nightly boundary, 43.x, custom mirrors, and never-dropped platform/arch combinations, plus downloadArtifact-level tests for the throw and the mirror/legacy passthroughs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KEEZg64JKFrSDAc7u4V4Na


Generated by Claude Code

Electron 44 dropped support for 32-bit Windows (win32/ia32) and armv7l
Linux. The first releases without these artifacts are v44.0.0-alpha.4
and v45.0.0-nightly.20260714, so requesting them for newer versions
previously failed with an unhelpful HTTP 404 from GitHub releases.

Throw a descriptive error before attempting the download instead,
scoped to official downloads only - custom mirrors may legitimately
host their own 32-bit builds. Electron <= 43 (supported until January
2027) and cached artifacts are unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KEEZg64JKFrSDAc7u4V4Na
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants