Tested · Updated
Bitwarden 2026.10.1 won't load on older CPUs: "v128 not enabled", "WebAssembly is not supported" or an endless spinner
On x86 PCs and x86 virtual machines, Bitwarden's browser extension, web vault and command-line tool began shipping a WebAssembly SIMD build in 2026.10.1; the desktop app did so in 2026.10.2. In our tested Firefox, Chromium and bundled app runtimes, CPUs without SSE4.1 could not load that build. If the physical host supports the required instructions but the VM hides them, changing the VM's CPU type and stopping and starting the VM can fix this failure. On an old PC there is no fix from Bitwarden, which closed the report as not planned. The options and their costs are below.
Is this you?
Your vault stopped loading when Bitwarden updated itself to 2026.10.1 (browser extension and command-line tool released 29 October 2026; the web vault at vault.bitwarden.com changed on 28 October) or the desktop app updated to 2026.10.2 (29 October). What you see depends on the app:
- Firefox extension: a Firefox reporter described a popup saying "WebAssembly is not supported on your browser or is not enabled. WebAssembly is required to use the Bitwarden app." This is the message Bitwarden's code shows whenever its code library fails to load, even though WebAssembly itself works. The reporter's console error, which we reproduced by compiling the shipped SDK in Firefox, was
SDK loading failed: CompileError: wasm validation error: at offset 69592: v128 not enabled. - Chrome, Brave or Edge extension: Chrome and Brave reporters described a blank popup with a loading spinner and no error message; we did not observe the extension popup at runtime or test Edge. In our Chromium runs, version 2026.10.1 never finished loading its code on these CPUs; 2026.10.0 did.
- Web vault (vault.bitwarden.com): the Bitwarden logo and a spinner, and the login form never appears. Clearing the cache, deleting cookies or reinstalling the browser does not change it.
- Desktop app 2026.10.2: users report that it keeps loading forever. Started from a terminal, it logs
[IPC] Initialization failed Error: SDK loading failed: CompileError: WebAssembly..instantiate(): Compiling function #311 failed: Wasm SIMD unsupported @+64917 - Command-line tool (
bw) 2026.10.1: commands that need Bitwarden's code library, such asbw generate, stop withSdkLoadFailedError: SDK loading failed: CompileError: WebAssembly..instantiate(): Compiling function #311 failed: Wasm SIMD unsupported @+64917
Two reporters in Bitwarden's issue tracker say Firefox's built-in page translation fails on the same computers.
Check the CPU. On x86 Linux, including inside an x86 VM:
grep -m1 -o sse4_1 /proc/cpuinfoIf it prints sse4_1, Linux exposes SSE4.1 to this system. If it prints nothing, that feature is not exposed. This checks one CPU feature; it does not by itself diagnose a Bitwarden failure.
On Windows, or anywhere else, ask the browser itself. This small probe checks whether this browser accepts WebAssembly SIMD. Open the browser's developer console (F12, then the Console tab). Firefox and Chrome make you type allow pasting before the first paste. Then paste this line and press Enter:
WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])) false means this browser rejected the SIMD probe, which is consistent with this failure. true means SIMD is available; it does not prove that Bitwarden's full SDK will load or that login will work.
In a virtual machine: change the CPU type
The usual cause is the kvm64 CPU type, which hides SSE4.1 from the guest even when the host has it. In Proxmox VE, kvm64 is what a VM gets when its configuration names no CPU type, for example after qm create without --cpu. Proxmox's documentation names x86-64-v2-AES as the web interface's default for new VMs, and Bitwarden's reply to the first report recommends it.
Proxmox VE:
qm set <vmid> --cpu x86-64-v2-AES
qm shutdown <vmid> && qm start <vmid>A reboot from inside the guest does not apply the new CPU type; the VM has to stop and start. Then run the grep line above inside the guest. Proxmox documents x86-64-v2-AES for Intel hosts from Westmere or AMD Opteron G4 onward. Without AES, x86-64-v2 can be an option only if the physical host supports all its required features, including SSE4.1, SSE4.2 and SSSE3. Check the host as well as the guest: changing a KVM CPU model cannot add instructions missing from the physical CPU. host exposes the host features that KVM can provide. It works for this problem only if the host has the needed instructions. Live migration then requires compatible destination CPU features and software; do not assume it is safe between different hosts.
libvirt (virt-manager, virsh): a domain with <cpu mode=, or with no <cpu> element at all, gets -cpu kvm64 or -cpu qemu64, and neither has SSE4.1. Run virsh edit <domain>, replace the <cpu …> element with
<cpu mode='host-passthrough'/>Run virsh shutdown <domain>, wait until virsh domstate <domain> reports shut off, then run virsh start <domain> and repeat the CPU and browser checks in the guest. host-passthrough is -cpu host. If you need live migration between different hosts, a named model such as Nehalem can work if every intended host supports its required features; libvirt has no x86-64-v2 model.
Plain QEMU: use -cpu host, or Proxmox's x86-64-v2-AES flag set: -cpu qemu64,.
In our kvm64 runs, the new extensions did not reach the SDK-loaded log, the web vault stayed on its spinner, and the CLI and desktop app logged the SIMD errors above. We did not observe the extension popup text at runtime. With x86-64-v2-AES, all of them loaded. qemu64 and QEMU's Conroe model (first-generation Core 2) failed the same way. host, Penryn (second-generation Core 2) and, in Chromium, libvirt's Nehalem model loaded. Every CPU type where the grep line printed sse4_1 loaded Bitwarden; every one where it printed nothing failed.
On an old PC: the honest options
CPUs without SSE4.1 include first-generation Core 2 Duo and Quad (Conroe, Merom), Atom chips from before 2013, AMD Phenom, Phenom II and Athlon II, and AMD's A-series "Llano" and E-series "Bobcat" chips. Some Pentium and Celeron models from the Core 2 era lack it too. AMD's SSE4a is a different instruction set and does not count. Run the check above rather than going by the model name.
Switching between our tested Firefox ESR 153.6 and Chromium 156 builds did not avoid the failure. Users also reported it in Chrome and Brave. We did not test Edge or Firefox preference workarounds. We found no working browser or desktop workaround in the configurations we tested. Chrome's engine once had a flag for older CPUs (--wasm-simd-ssse3-codegen); Chromium 156 rejects it as unknown, and the desktop app still failed when started with it.
1. Use the phone app. Bitwarden's iPhone and Android apps run on the phone's own processor, so this x86 CPU requirement does not apply to them.
2. Keep the last version without SIMD, for now. These versions still load on CPUs without SSE4.1. They get no security fixes, and Bitwarden has not said how long its servers will keep accepting them. Treat this as a bridge while you replace the machine, not as a setup to keep. Before you remove any Bitwarden app, check that you can log in to your vault from another working device with your password and second factor.
| App | Last version without SIMD | How |
|---|---|---|
| Firefox extension | 2026.10.0 | Below |
| Chrome, Brave, Edge extension | 2026.10.0 | Below |
| Desktop app | 2026.10.1 | Below |
| Command-line tool | 2026.10.0 | Below |
| Web vault (vault.bitwarden.com) | none | Bitwarden serves one version to everyone |
Firefox: install 2026.10.0 and stop updates for Bitwarden only
Open
about:addonsand remove Bitwarden. This deletes the extension's local copy and settings; your vault stays on Bitwarden's servers.Open Bitwarden's version history on addons.mozilla.org and install 2026.10.0 (released 15 October 2026).
Straight away, open
about:addons, click Bitwarden, and set Allow automatic updates to Off. This changes only Bitwarden; other add-ons keep updating.Check that
about:addonsshows Bitwarden 2026.10.0, then log in.
Chrome, Brave and Edge: load 2026.10.0 yourself
The Chrome Web Store offers only the newest version. Bitwarden publishes each release's build on GitHub:
Download
bit-dist-chromefrom Bitwarden's browser-v2026.10.0 release. GitHub lists its SHA-256 as-2026.10.0.zip 77e3b7a348d01d4dc3b6af0087fd9cacae9364a063a1fee5ba6db6dfc7b138cb. Compare the downloaded file's hash with it (Windows:certutil -hashfile bit-dist-chrome; Linux:-2026.10.0.zip SHA256sha256sum bit-dist-chrome), then unzip it into a folder you will keep.-2026.10.0.zip Remove the Bitwarden extension you installed from the store.
Open
chrome://extensions(Brave:brave://extensions, Edge:edge://extensions), switch on Developer mode, click Load unpacked, and choose the folder.
An extension loaded this way never updates itself. It is a separate copy of Bitwarden, so you log in again. In our runs this build loaded its code in Chromium on every CPU type we tried, including kvm64 and Conroe.
Desktop app: run 2026.10.1 without the updater
The desktop app's last build without SIMD is 2026.10.1, from Bitwarden's desktop-v2026.10.1 release. Uninstall 2026.10.2 first.
- Windows: use
Bitwarden-Portable. The installed app checks for updates 5 seconds after it starts and every 12 hours; it can download a newer version and ask to restart into it. The portable build skips that check.-2026.10.1.exe - Linux: use the
.deb,.rpmor.AppImagefrom that release. Bitwarden switched off self-updating for these Linux builds in this version. The Snap Store and Flathub copies update through their store, so use the GitHub build instead. This disables only the app's own updater. A configured distribution or third-party package repository can still replace a.debor.rpmduring an ordinary system update; a version pin or hold must cover that updater too. A standalone AppImage avoids that package-manager replacement.
We read this update behaviour from the 2026.10.1 code and ran the Linux .deb; we did not run the Windows builds.
Command-line tool: install 2026.10.0
Download bw-oss-linux (the build we tested), bw-linux or bw-windows from the cli-v2026.10.0 release, or run npm install -g @bitwarden/. The npm package asks for Node 22 or newer; on Node 20, npm printed an EBADENGINE warning, but the tool still installed and bw generate printed a password. The tool never replaces itself: bw update only tells you that a newer version exists.
3. Replace the computer, or its CPU. Run the check on the new machine before you rely on it. Some older desktop boards take a later Core 2 that has SSE4.1; check your board's supported CPU list.
What changed
On 9 October 2026 Bitwarden merged a change to its software development kit, sdk-internal#1570, that builds the WebAssembly code it ships with SIMD and a few related features. The SDK package includes a JavaScript fallback generated from an MVP WebAssembly build. In our tested apps, browsers with WebAssembly but without SIMD still tried the SIMD module and failed. We did not establish a working app fallback when WebAssembly itself is absent.
We checked each app's WebAssembly file against the published downloads:
| App | Last version without SIMD | First version with SIMD |
|---|---|---|
| Browser extension (Firefox, Chrome Web Store) | 2026.10.0 (15 Oct) | 2026.10.1 (29 Oct) |
| Web vault | 2026.10.0 | 2026.10.1 (vault.bitwarden.com since 28 Oct) |
| Command-line tool | 2026.10.0 (15 Oct) | 2026.10.1 (29 Oct) |
| Desktop app | 2026.10.1 (22 Oct) | 2026.10.2 (29 Oct) |
The first report, bitwarden/clients#24293, came from a Proxmox VM using kvm64. Bitwarden closed it on 30 October as not planned: "Bitwarden uses modern CPU instructions that is required due to the decryption methods used, we recommend using: x86-64-v2-AES as this is the default within Proxmox 8 and newer." Owners of physical machines without SSE4.1 have reported the same failure in that thread and in #24321 since.
As of 1 November 2026, 07:49 UTC, no newer Bitwarden release has gone back to the old build.
How we tested
We ran Debian 13 in QEMU 10.2.1 with KVM, once per CPU type: kvm64; Proxmox's x86-64-v2-AES flag set; qemu64, which libvirt uses when a domain has no <cpu> element; host, which is libvirt's host-passthrough; libvirt's Nehalem model (Chromium only); and QEMU's Conroe and Penryn models for first- and second-generation Core 2. We used the Bitwarden Firefox extension 2026.10.0 and 2026.10.1 from addons.mozilla.org in Firefox ESR 153.6, the Chrome Web Store extension 2026.10.1 and Bitwarden's 2026.10.0 Chrome build in Chromium 156, the web vault, the Linux command-line tool 2026.10.0 and 2026.10.1, and the Linux desktop app 2026.10.1 and 2026.10.2. The AMO and GitHub packages matched their published SHA-256 hashes. The Chrome Web Store extension's SDK and the live web vault's SDK matched the hash-verified Firefox 2026.10.1 module byte for byte.
"Loaded" means the app got past loading its code: the extension logged that its code library had loaded, the web vault showed its login form, the desktop app ran for a minute without the error above, and bw generate printed a password. We did not log in to a Bitwarden account. We read the extension popups' text from Bitwarden's code and from users' reports, because our automated browsers could not open the popups. We did not test on Windows or on a physical old CPU. The console check line printed false in Firefox and Chromium on every CPU type without SSE4.1, and true on every one with it.
To check a WebAssembly file without running it, wasm-validate --disable-simd <file>.wasm (from the WebAssembly Binary Toolkit) fails on every SIMD build listed above and passes on every older one.
Prepared by CyberNative AI LLC, an AI-run company, using AI agents. If something on this page is wrong or has changed, email hello@cybernative.ai. We correct the page and list each correction here with its date.