Environment information
Details
CLI:
Version: 2.5.7
Color support: true
Platform:
CPU Architecture: aarch64
OS: windows
Environment:
BIOME_DISTRIBUTION: unset
BIOME_LOG_PATH: unset
BIOME_LOG_PREFIX_NAME: unset
BIOME_LOG_LEVEL: unset
BIOME_LOG_KIND: unset
BIOME_CONFIG_PATH: unset
BIOME_THREADS: unset
BIOME_WATCHER_KIND: unset
BIOME_WATCHER_POLLING_INTERVAL: unset
NO_COLOR: unset
TERM: xterm-256color
JS_RUNTIME_VERSION: unset
JS_RUNTIME_NAME: unset
NODE_PACKAGE_MANAGER: unset
Biome Configuration:
Status: Not set
Path: unset
Workspace:
Open Documents: 0
Host: Windows 11 (10.0.26200), Snapdragon / Windows-on-ARM, Node v24.18.1 win32-arm64.
What happened?
biome lint crashes with an access violation on win32-arm64 as soon as it does
any analysis work. It reproduces on a two-line JavaScript file with no
configuration file anywhere on the path, so it is not rule-, config- or
project-specific.
-
Create an empty directory outside any repository:
mkdir biome-arm-repro
cd biome-arm-repro
"const a = 1;`nconsole.log(a);" | Set-Content t.js
-
Install the platform binary directly (bypassing the @biomejs/biome wrapper,
to rule the wrapper out):
npm i --no-save @biomejs/cli-win32-arm64@2.5.7
-
Run it:
& .\node_modules\@biomejs\cli-win32-arm64\biome.exe lint t.js
Result: no output at all, and
LASTEXITCODE = -1073741819 # 0xC0000005, STATUS_ACCESS_VIOLATION
Under Git Bash the same command reports Segmentation fault, exit 139.
biome --version and biome rage both succeed at the same version (the rage
output above was produced by the very binary that crashes), so the executable
loads and runs β it dies only once it starts analysing.
Bisect
Same machine, same t.js, same command, only the version of
@biomejs/cli-win32-arm64 changed:
| Version |
Result |
| 2.4.16 |
β
lints |
| 2.5.0 |
β
lints |
| 2.5.1 |
β
lints |
| 2.5.2 |
β 0xC0000005 |
| 2.5.3 |
β 0xC0000005 |
| 2.5.4 |
β 0xC0000005 |
| 2.5.5 |
β 0xC0000005 |
| 2.5.6 |
β 0xC0000005 |
| 2.5.7 |
β 0xC0000005 |
2.5.2 is the first affected release. To confirm the passing runs are not a
silent no-op, I ran 2.5.0 against a file with an actual violation
(if (a == b) { var x = 1 }) and it correctly reported
lint/correctness/noUnusedVariables.
Nothing in the 2.5.2 release notes looks platform- or build-related β they are
all rule and formatter changes β so I suspect the toolchain or build
configuration rather than a specific code change.
Possibly related
This looks like the same bug class as #10270 ("Biome 2.4.14 broken on Windows on
ARM"), which was closed as fixed on 2026-05-07 with the conclusion, from the
biome-win-arm-debug CI runs, that 2.4.14 was the only affected version. That
no longer holds: 2.5.2 through 2.5.7 are all affected on this machine.
Workaround, for anyone who lands here
The x64 binary runs fine under Windows-on-ARM emulation:
npm i --no-save --force --cpu=x64 --os=win32 --prefix /tmp/biome-x64 @biomejs/cli-win32-x64@2.5.7
/tmp/biome-x64/node_modules/@biomejs/cli-win32-x64/biome.exe lint .
I am happy to run further diagnostics on this machine β a debug build, a
pkg.pr.new build, or a bisect over commits between 2.5.1 and 2.5.2 β if that
would help narrow it down.
Expected result
biome lint t.js should lint the file and exit 0, as it does on 2.5.1 and as it
does with the x64 binary under emulation.
Code of Conduct
Environment information
Details
Host: Windows 11 (10.0.26200), Snapdragon / Windows-on-ARM, Node v24.18.1 win32-arm64.
What happened?
biome lintcrashes with an access violation onwin32-arm64as soon as it doesany analysis work. It reproduces on a two-line JavaScript file with no
configuration file anywhere on the path, so it is not rule-, config- or
project-specific.
Create an empty directory outside any repository:
Install the platform binary directly (bypassing the
@biomejs/biomewrapper,to rule the wrapper out):
Run it:
Result: no output at all, and
Under Git Bash the same command reports
Segmentation fault, exit 139.biome --versionandbiome rageboth succeed at the same version (therageoutput above was produced by the very binary that crashes), so the executable
loads and runs β it dies only once it starts analysing.
Bisect
Same machine, same
t.js, same command, only the version of@biomejs/cli-win32-arm64changed:0xC00000050xC00000050xC00000050xC00000050xC00000050xC00000052.5.2 is the first affected release. To confirm the passing runs are not a
silent no-op, I ran 2.5.0 against a file with an actual violation
(
if (a == b) { var x = 1 }) and it correctly reportedlint/correctness/noUnusedVariables.Nothing in the 2.5.2 release notes looks platform- or build-related β they are
all rule and formatter changes β so I suspect the toolchain or build
configuration rather than a specific code change.
Possibly related
This looks like the same bug class as #10270 ("Biome 2.4.14 broken on Windows on
ARM"), which was closed as fixed on 2026-05-07 with the conclusion, from the
biome-win-arm-debugCI runs, that 2.4.14 was the only affected version. Thatno longer holds: 2.5.2 through 2.5.7 are all affected on this machine.
Workaround, for anyone who lands here
The x64 binary runs fine under Windows-on-ARM emulation:
npm i --no-save --force --cpu=x64 --os=win32 --prefix /tmp/biome-x64 @biomejs/cli-win32-x64@2.5.7 /tmp/biome-x64/node_modules/@biomejs/cli-win32-x64/biome.exe lint .I am happy to run further diagnostics on this machine β a debug build, a
pkg.pr.newbuild, or a bisect over commits between 2.5.1 and 2.5.2 β if thatwould help narrow it down.
Expected result
biome lint t.jsshould lint the file and exit 0, as it does on 2.5.1 and as itdoes with the x64 binary under emulation.
Code of Conduct