Closed general

No new public Windows user has finished setup since Oct 13: verify-setup unreachable, false virtualization-off, Parallels, expired sign-in links

John Lauer · 7d ago ·closed by John Lauer

What happened

No new public Windows user has got Hydrogen running since 2026-10-13 22:00 UTC. Every new install since then is on public 1.0.601, and every one stopped at one of the walls below. (Mac sign-ups are getting through fine.) Several of these are fixed or partly fixed in insiders (1.0.603+, now 1.0.617), so part of the fix is promoting a newer build, which only happens on John's word. The rest needs code.

1. verify-setup fails with workspace_unreachable after everything else succeeded (new, the worst one)

ae6cf587-b294-462c-aa26-fe846cb35e07: WSL install, restart, import, first boot, code-server, relay and sign-in all ok (15:09 UTC on 10-14). Then verify-setup fail, verify_setup_failed, screen workspace_unreachable, 9 times over 9 hours, including after an uninstall and reinstall. The person never got in. Please find what verify-setup probes that answers here, add the probe and its result to the error (which URL or command, what came back), and make the screen offer a real recovery (restart the workspace, then retry).

2. "Virtualization off" shown before WSL is even installed

The same install's first three launches (13:46 to 14:10) failed ensure-workspace in about 55 s and showed virtualization_off, with virt_fw: no, hypervisor: no, wsl_present: no. On the 4th launch, setup ran wsl_install, restarted, and the import worked. So virtualization was fine. On a machine without WSL, hypervisor: no is normal (nothing has turned the hypervisor on yet), and Windows' firmware flag is unreliable, so this check must not block before trying wsl --install. cd866ed0-66c3-4b84-9ee6-308852397e59 shows the same 55 s failure before any WSL step, then import_failed, and the person quit.

Note for the fleet: I had treated "virt_fw and hypervisor both no" as really off. That install shows it is not, before WSL is installed. I am fixing the dashboard's reading.

3. HCS_E_HYPERV_NOT_INSTALLED after the WSL restart still shows "virtualization off"

cb4c991c-6ca6-45cc-b9da-900475e2e989: wsl_install ok, restart, then wsl_import fail with Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED, and the virtualization_off screen. Is this covered by the 1.0.603 restart guard (fixed, waiting on promotion), or does it need its own handling (the Virtual Machine Platform feature still not enabled after the restart: offer to enable it and restart again)?

4. Windows inside Parallels

0d7d2784-2bf0-493a-8e04-5bceb27ce22c: GPU Parallels Display Adapter (WDDM), so Windows is running in a VM on a Mac. WSL2 needs nested virtualization, which Parallels has off by default. Detect the Parallels or VMware display adapter and show "Turn on nested virtualization in Parallels (Hardware, CPU and Memory, Enable nested virtualization), or use Hydrogen for Mac". The person uninstalled within 10 minutes.

7fa13b51-7eb0-4d9d-8ad3-2b7036cf2a5f and ae6cf587-... both hit signin_screen failed, reason link_expired_unapproved on 1.0.601, after #109 was closed. The first person quit after 55 minutes on the sign-in screen. The second needed three links and 45 minutes. It may be people taking long to create an account rather than #109 again, but a 15-minute link is short for a brand-new user making an account. Consider keeping the link valid for as long as the window waits, or showing "Your sign-in link expired, click to get a new one" in the window, not just reopening the browser.

Done when

A fresh install of the public build on a clean Windows PC gets through, and the fleet shows public setup_complete events again.

3 Replies

John Lauer · 7d ago

Fixed in insiders 1.0.618. Here is each wall:

  1. verify-setup workspace_unreachable: when the localhost checks fail, setup now tests from inside the workspace and sends the result in the error code. It records WSL's live networking mode, the HTTP answer from Hydrogen's proxy and control API, and the .wslconfig setting. It also names the checks that failed, e.g. verify_setup_failed_carbon_wssync_net_nat_px_000_ctl_000_cfg_mirrored. The screen's button is now Restart WSL and finish setup: it does a full WSL restart, then setup runs again from the build. Before, it was an identical retry.
  2. False "virtualization off" before WSL is installed: removed. hypervisorPresent|firmwareEnabled = false|false is now only logged, and setup goes on to wsl --install. The virtualization screen now comes only from WSL's own errors (HCS codes).
  3. HCS_E_HYPERV_NOT_INSTALLED after the restart: it needed its own handling. On real hardware, a new card ("Windows' virtualization features are off") has a Turn them on button. After one permission prompt it runs dism /enable-feature VirtualMachinePlatform and bcdedit /set hypervisorlaunchtype auto, then offers Restart now / Restart later. The repair is offered once. If the import still fails after it, the firmware (BIOS) card shows. New fleet screen: virtualization_features_off.
  4. Windows inside a virtual machine: on a virtualization failure, Hydrogen reads the system manufacturer and model plus the display adapter. Parallels, VMware, VirtualBox, Hyper-V and other VMs (cloud servers included) each get their own host setting to turn on. Parallels also gets a Get Hydrogen for Mac button. New screens: vm_parallels, vm_vmware, vm_virtualbox, vm_hyperv, vm_other.
  5. Expired sign-in links: when the link expires before approval, the setup window now says "Your sign-in link expired (links last 15 minutes). If you were creating your Adom account, it is saved: get a new link and sign in with it." It has a Get a new sign-in link button. The 15 minutes is set by Carbon, which ignored every lifetime field I tried (expires_in, ttl, ttl_seconds, intent_ttl). Making the link last longer is a Carbon change for its owner.

Tested on 1.0.618: the full ralph sweep is green on ConfRoomROG (217/0). arav-rog has only its old Oct 13 panic still in its log (220/1). These boxes cannot show the new setup screens (they already have a workspace). A fresh-PC run on winvm would show them.

Still open: new public users only get this once 1.0.618 (or later) is promoted. Public is on 1.0.601. That is John's call. Leaving this open until the fleet shows public setup_complete events again.

John Lauer · 7d ago

Update: 1.0.621 is the promotion candidate (insiders). It passed the new promotion gate (docs/PROMOTION-GATE.md): 19 of 19 checks.

What the winvm run showed, on a clean Windows 11 with no WSL:

  • Wall 3 reproduced and fixed. With the hypervisor turned off at boot (bcdedit /set hypervisorlaunchtype off), the import fails with HCS_E_HYPERV_NOT_INSTALLED. Public 1.0.601 shows the dead-end BIOS card. 1.0.621 shows "Windows' virtualization features are off". Turn them on ran the fix (one permission prompt), then Restart now, then setup completed 8 of 8.
  • Wall 1, the likely cause. The new probe caught net=nat proxy=000 ctl=000 wslconfig=mirrored: .wslconfig asks for mirrored networking, but WSL is still running NAT, so the workspace cannot reach Hydrogen. A full WSL restart (the card's new button) fixes it. Verified: setup completed after the button.
  • New wall found in the fleet, fixed: test-relay (BKN1 on 10-13 failed it 3 times). The step now restarts the relay and retries. Verified: with the relay stopped, test-relay restarted it and passed.
  • Sign-in: an expired link still shows a normal "Log in to continue" page. Only after signing in does the person see "Login request expired". Hydrogen's window now offers a new link. The 15-minute lifetime and a warning on that page are on the Carbon/web side.
  • Every earlier setup-pitfall scenario passed again: other distro running, port 7380 taken, blocked download, full disk, dead session, damaged and partial download cache, broken setup state, .wslconfig handling, firewall-blocked WSL.

Promotion is John's call. Leaving this open until the fleet shows public setup_complete events again.

John Lauer · 6d ago

Fixed and public in 1.0.636 (promoted 2026-10-16 15:55 UTC). Every item here passed a test that reproduces it on the Windows test VM, plus the full sweep on two test PCs:

  • verify-setup "workspace unreachable": setup heals the workspace's route to Hydrogen and re-checks before stopping; the card offers a WSL restart.
  • False "virtualization is off" before WSL2 was even installed: no longer shown before the install.
  • HCS_E_HYPERV_NOT_INSTALLED: a "Windows' virtualization features are off" card with Turn them on (turns on the Virtual Machine Platform and the hypervisor, one permission prompt, one restart). Tested with the hypervisor switched off.
  • Parallels / VMware / VirtualBox: names the host's nested-virtualization switch instead of sending people to their BIOS.
  • Expired sign-in links: the card says the link expired and opens a fresh one.

Also in 1.0.636, found in the field this week:

  • WSL NAT networking (WSL refuses mirrored mode): setup finishes through a NAT fallback and Hydrogen runs normally on it (full sweep passed in that state).
  • Restart loop: when WSL was installed but Windows' VM service would not start, setup asked for a restart on every boot. It now asks once. 1.0.637 (in testing) then offers the virtualization repair instead of a plain "Run setup again".
  • Low disk: loud warnings before the drive fills (toast, fill-rate alarm, red DISK row on the meter).
  • Report this problem in the Setup panel, so a stuck install can file an issue with its log from inside the app.

New public installs are completing again. Closing; anything new goes in a fresh issue.

Log in to reply.