Skip to content

fix(install.ps1): probe WSL2 networking before delegating to bootstrap (closes #1006)#1010

Merged
joelteply merged 1 commit into
canaryfrom
fix/install-ps1-probe-wsl-networking
May 2, 2026
Merged

fix(install.ps1): probe WSL2 networking before delegating to bootstrap (closes #1006)#1010
joelteply merged 1 commit into
canaryfrom
fix/install-ps1-probe-wsl-networking

Conversation

@joelteply
Copy link
Copy Markdown
Contributor

Summary

Add a 5s curl probe from inside WSL2 to raw.githubusercontent.com BEFORE delegating to bootstrap.sh. When WSL2 networking is broken (vEthernet / HNS corruption is common on Win10/11 after sleep cycles or driver updates), the curl inside the bootstrap step takes 30+ seconds to time out with a cryptic error — and the user has zero signal that the issue is environmental, not continuum-related.

Caught live 2026-05-02 by continuum-b69f during Carl-OOTB Windows testing (issue #1006). After PR #1005 fixed the WSL detection, install.ps1 delegated into bootstrap successfully — and the WSL-side curl just hung. The user has no way to distinguish "install is broken" from "my box's WSL is broken."

Fix

5s probe upfront. On failure, surface explicit remediation:

  1. wsl --shutdown (forces VM restart, often heals NAT)
  2. (as admin) Restart-Service hns -Force (reset Host Networking Service)
  3. Reboot Windows
  4. Edit %USERPROFILE%\.wslconfig[wsl2] networkingMode=NAT
  • Re-run install command

Same pattern as install.sh's friendly-failure phase traps (#977 family): fail loudly + tell the user exactly what to try next, instead of dying silent or with a 30s mystery timeout.

Test plan

Closes

Related

🤖 Generated with Claude Code

When WSL2 has lost external network reachability (vEthernet / HNS
corruption is common on Win10/11 after sleep cycles, driver updates,
or system patches), the curl inside `bootstrap.sh | bash` takes 30+
seconds to time out with a cryptic error — and the user has no signal
that the issue is environmental, not continuum-related.

Caught live 2026-05-02 by continuum-b69f during Carl-OOTB Windows
testing (issue #1006). After PR #1005 fixed the WSL detection bug,
install.ps1 delegated into bootstrap.sh successfully — and the WSL-
side curl just hung. The user has no way to tell whether the install
is broken or their box's WSL is broken.

Fix: 5s curl probe to raw.githubusercontent.com from inside WSL
BEFORE the delegate. If it fails, surface explicit Windows-side
remediation:
  1. wsl --shutdown
  2. (as admin) Restart-Service hns -Force
  3. Reboot Windows
  4. Edit %USERPROFILE%\.wslconfig — networkingMode=NAT
  + Re-run command

Pattern: same family as install.sh's friendly-failure phase traps
(#977 work) — fail loudly and tell the user exactly what to try
NEXT, instead of dying silent or with a 30s mystery timeout.

## Tests

- Edit-only PowerShell change, no shape change to delegate path
  when probe passes.
- Linux/Mac CI not affected (probe block is inside install.ps1).
- Live validation pending b69f's box (currently the WSL2 NAT is
  broken on their box per #1006 — perfect natural test case for
  the new probe message).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@joelteply joelteply merged commit 2f6e2f2 into canary May 2, 2026
2 of 3 checks passed
@joelteply joelteply deleted the fix/install-ps1-probe-wsl-networking branch May 2, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant