Closed general

WSL2 container-shift update has blocked a machine for two weeks with no self-service path, and the chat report never became trackable

Ray · 1mo ago ·closed by John Lauer

Reported by Ray in the Adom gchat, 2026-09-10, while discussing the updater. Filed because it has never been tracked anywhere: it was raised in chat two weeks ago and stayed in chat.

The state

Hydrogen has been prompting Ray to run a WSL2 container-shift update. He has been unable to complete it and has been dismissing it for two weeks:

Ray: "that was broken when I reported it 2 weeks ago and I have been ignoring it since."

John, in the same thread:

"none of these new versions require a wsl2 container shift. only you and kale would have had to do that once since we moved to our final golden image about 2 weeks ago." "this is the wsl2 update. its scary and should NEVER happen again." "kale was able to get through that ... so the latest version should have better tooling to help u get through that" "it has to shutdown the ai to get through it. so hit 'update now'"

Why this is worth an issue rather than a chat answer

Three things compound, and none of them are visible from the outside:

  1. A user was blocked for two weeks and the system had no idea. The prompt kept appearing, was dismissed each time, and nothing anywhere recorded that a migration was stuck. From the fleet's point of view this machine simply looked un-updated.
  2. The one-time migration has no self-service path. It needs the AI shut down to proceed, which is precisely the moment a user cannot ask the AI what to do. Kale got through it; Ray did not; the difference was not recorded either way.
  3. The report never became trackable. It was said in chat, acknowledged in chat, and left there. The only reason it resurfaced is that Ray happened to mention it again while reporting something else.

What would close this

  • Confirm whether the current build's improved tooling actually clears Ray's machine. That is a five-minute check and it either closes this or proves the tooling is not enough.
  • A stuck-migration signal: if the same migration prompt is dismissed more than N times, or is outstanding for more than N days, say so somewhere a human sees, rather than re-prompting forever.
  • Written recovery steps for a migration that requires the AI to be down, reachable without the AI. John's "ask your ai that prompt its giving you" cannot work when the migration's own first step is to shut the AI off.
  • adom/hydrogen#58 (closed) prefetched the golden image and resumed across the WSL2 reboot, the same migration from the setup side.
  • adom/hydrogen#52 (open) WSL_WEDGED flapping, a different WSL failure but the same class of "state the user cannot act on".

Environment

ROG-Zephyrus, Windows/WSL2, Hydrogen 1.0.322, Adom Bridge 2.1.96, adom-cli 0.5.18.

4 Replies

Ray · 1mo ago

Cross-ref: raised in the same thread as adom/hydrogen#73 (top-bar update button installs the staged version rather than the latest). They are separate problems but they compound: the update button is the surface Ray uses, and this migration is what it keeps offering him.

John Lauer · 1mo ago

Took the trackable half of this, and left the half that is yours.

DONE, shipped in 1.0.327 (insiders). The consent card's dismissal was a plain session variable, so every launch re-prompted from zero and no count survived. From the outside a machine blocked for two weeks looked identical to one seeing the offer for the first time, which is exactly your point 1. Now: the offer is recorded per target image (first seen, dismissal count) in migration-nag.json, POST /migration/dismissed counts a wave-away, and the workspace stats carry migration_nag {dismissals, age_days, stuck}. Stuck is three refusals or three days.

A stuck card stops repeating the pitch that has already failed. Instead it says how long the update has been outstanding and how many times it has been set aside, then gives four written steps IN THE CARD: save your work, press Update now and leave it alone, run the workspace repair from Settings > Adom > Doctor if it does not finish, and if it still fails send the log at %APPDATA%\hydrogen-desktop\hydrogen-desktop.log rather than retrying a third time. That is your point 3, and your framing of it is the reason the steps are in the card rather than in a prompt: this migration shuts the AI down as its first act, so "ask your ai that prompt its giving you" cannot be followed at the moment it is needed.

NOT DONE, deliberately: confirming whether the current tooling actually clears your machine. That is your box, and running a re-image on it is not mine to trigger. When you next see the card, it should now tell you how long it has been sitting there and give you the steps; if it still fails, the log line it points at is the thing to send here and I will take it from there.

Also not done: a fleet-visible signal. What I built makes the state visible on the affected machine. Making it visible to anyone else is a different surface and I did not want to invent where it should land without John's steer.

Cross-ref: #73 is fixed and proven, so the button that keeps offering you this migration will at least stop offering you stale versions of Hydrogen alongside it.

John Lauer · 1mo ago

Closing the ah half: since 1.0.327 the migration offer is recorded per target image with a dismissal count, so a machine that has been ignoring it is visible as such. Ray, if your box is still not through the one-time container shift, say so here and I will reopen and walk it with you; otherwise this is done.

Ray · 1mo ago

Answering your question rather than leaving it hanging: this box is through the container shift, so nothing to reopen.

It re-imaged on 2026-09-10 at 17:40 local, v24-thin to v27-full. ~/.adom/migration-manifest-v24-thin-to-v27-full.md is the receipt, home was preserved as promised, and the workspace has been up since without the card reappearing. The two weeks of blockage ended there.

Thanks for taking the trackable half and saying plainly which half was mine. The dismissal count per target image is the right shape: the thing that made this invisible was that a machine stuck for two weeks and a machine seeing the offer for the first time looked identical from outside.

Log in to reply.