Description
Description
Running nemoclaw uninstall --yes (default flags, no --destroy-user-data) followed immediately by a fresh install of the same tag leaves the environment in an inconsistent state:
- Uninstall preserves
sandboxes.json under ~/.nemoclaw by design, but also removes the OpenShell CLI, the Docker container/gateway, the gateway metadata, and all provider registrations — everything that would be needed to interact with the sandbox recorded in that preserved sandboxes.json. - On reinstall, the installer reads the preserved
sandboxes.json, tries to "recover and upgrade pre-existing sandboxes," and immediately hits Error: × No gateway metadata found for 'nemoclaw' because uninstall deleted the gateway registration that the recorded sandbox referenced. - The installer then bootstraps a new gateway (also named
nemoclaw), notices the recorded sandbox my-assistant isn't observable on it, and prints Skipping 1 sandbox(es) not observed on the selected gateway — verify their recorded gateway or start them first. - The installer reports
=== Installation complete === and Existing sandboxes were recovered and upgraded — but nothing was actually recovered. my-assistant is stranded: its metadata is in sandboxes.json, its Docker image was removed during uninstall (Removed Docker image 80ed9cda5bf6), and the new gateway has no record of it.
There's also a version-drift oddity worth flagging: the stale-sandbox line reads NemoClaw image v0.0.77 → v0.0.76, i.e. the installer is proposing a downgrade from v0.0.77 to the requested v0.0.76. This is a consequence of NEMOCLAW_INSTALL_TAG=v0.0.76 being older than whatever built my-assistant originally, but the installer surfaces it as a routine "upgrade" step without warning.
Net effect: the "preserve sandboxes on uninstall" contract is broken — the preserved data is unrecoverable by design after uninstall removes its dependencies, and the reinstall path reports success while silently orphaning the user's sandbox.
Environment:
- Host: macOS (Mac Studio), user
hellonemoclaw - Container runtime:
colima - Node.js:
v22.23.1, npm 10.9.8 - Uninstall command:
nemoclaw uninstall --yes - Reinstall command:
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.76 bash - Preserved sandbox:
my-assistant (stopped, v2026.6.10, image v0.0.77)
Steps to reproduce
- Have a working NemoClaw install with at least one registered sandbox (
my-assistant, stopped is fine), built on a newer image than the tag you'll reinstall to. - Run:
nemoclaw uninstall --yes
Observe that it preserves
rebuild-backups and
sandboxes.json under
~/.nemoclaw, but removes the OpenShell CLI, the gateway, all providers, and the Docker image.
3. Confirm the CLI is gone:
openshell gateway select
# zsh: command not found: openshell
Reinstall:
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.76 bash
Accept the third-party notice. Let the installer run through phases 1–3.Observe the "Recovering and upgrading pre-existing sandboxes" step.
Expected output
One of the following, consistent behavior:
- Preferred: uninstall and reinstall are symmetric. Either uninstall preserves everything needed to recover the sandboxes it preserves (gateway metadata, provider registrations, and the Docker image referenced by
sandboxes.json), or it clearly warns that preserving sandboxes.json without those dependencies makes the preserved data unrecoverable and offers to purge it too. On reinstall, my-assistant is either brought back to a usable state on the new gateway or the user is given a concrete remediation path. - Acceptable: the reinstall path detects that the recorded sandboxes reference a gateway/image that no longer exist, prints an actionable diagnostic (e.g. "sandbox
my-assistant cannot be recovered because its Docker image was removed during uninstall; run nemoclaw sandbox forget my-assistant to clear it, or nemoclaw onboard my-assistant to rebuild"), and does not report Installation complete / Existing sandboxes were recovered and upgraded when nothing was recovered.
In addition, a proposed downgrade (v0.0.77 → v0.0.76) should be surfaced explicitly rather than framed as a routine upgrade step.
Actual output
Uninstall (relevant excerpt):
Preserving rebuild-backups, sandboxes.json under /Users/hellonemoclaw/.nemoclaw.
...
[2/6] OpenShell resources
Deleted all OpenShell sandboxes skipped
Deleted provider 'nvidia-nim' skipped
Deleted provider 'vllm-local' skipped
Deleted provider 'ollama-local' skipped
Deleted provider 'nvidia-ncp' skipped
Deleted provider 'nim-local' skipped
Gateway 'nemoclaw' already removed or unreachable
...
[4/6] Docker resources
Removed Docker image 80ed9cda5bf6
...
Removed contents of /Users/hellonemoclaw/.nemoclaw (preserved: rebuild-backups, sandboxes.json)
Reinstall (relevant excerpt):
[3/3] Onboarding
[INFO] Recovering and upgrading pre-existing sandboxes before onboarding…
Error: × No gateway metadata found for 'nemoclaw'.
│ Register it first with: openshell gateway add --name nemoclaw
│ Or list available gateways: openshell gateway select
[2/8] Starting OpenShell gateway
Starting OpenShell Docker-driver gateway...
✓ Docker-driver gateway is healthy
✓ Active gateway set to 'nemoclaw'
Stale sandboxes:
my-assistant v2026.6.10 unchanged; NemoClaw image v0.0.77 → v0.0.76 (stopped)
Skipping 1 sandbox(es) not observed on the selected gateway — verify their recorded gateway or start them first.
No running stale sandboxes to rebuild.
[INFO] Existing sandboxes recovered; skipping generic onboarding.
[INFO] === Installation complete ===
Existing sandboxes were recovered and upgraded.
No new sandbox onboarding was needed.
Notable specifics:
- Every step under
[2/6] OpenShell resources reports skipped alongside "Deleted …" — the wording is contradictory. It reads as "Deleted X skipped," which is ambiguous about whether deletion happened. If the intent is "already gone, nothing to delete," the phrasing needs to be Skipped 'nvidia-nim' (already removed), not Deleted provider 'nvidia-nim' skipped. - The
Error: × No gateway metadata found for 'nemoclaw' line is printed mid-flow, then the installer proceeds and prints Installation complete — the error was swallowed, not addressed. - Final lines claim
Existing sandboxes were recovered and upgraded and No new sandbox onboarding was needed, both false in this run. One sandbox was silently skipped and the user is left with no path to recover or forget it. - The stale-sandbox line shows a downgrade (
v0.0.77 → v0.0.76) but doesn't call it out as such.
Bug Details
| Field |
Value |
| Priority |
Unprioritized |
| Action |
Dev - Open - To fix |
| Disposition |
Open issue |
| Module |
Machine Learning - NemoClaw |
| Keyword |
NemoClaw, NEMOCLAW_GH_SYNC_APPROVAL, NemoClaw_Onboard |
[NVB#6432188]
Description
Description
Running
nemoclaw uninstall --yes(default flags, no--destroy-user-data) followed immediately by a fresh install of the same tag leaves the environment in an inconsistent state:sandboxes.jsonunder~/.nemoclawby design, but also removes the OpenShell CLI, the Docker container/gateway, the gateway metadata, and all provider registrations — everything that would be needed to interact with the sandbox recorded in that preservedsandboxes.json.sandboxes.json, tries to "recover and upgrade pre-existing sandboxes," and immediately hitsError: × No gateway metadata found for 'nemoclaw'because uninstall deleted the gateway registration that the recorded sandbox referenced.nemoclaw), notices the recorded sandboxmy-assistantisn't observable on it, and printsSkipping 1 sandbox(es) not observed on the selected gateway — verify their recorded gateway or start them first.=== Installation complete ===andExisting sandboxes were recovered and upgraded— but nothing was actually recovered.my-assistantis stranded: its metadata is insandboxes.json, its Docker image was removed during uninstall (Removed Docker image 80ed9cda5bf6), and the new gateway has no record of it.There's also a version-drift oddity worth flagging: the stale-sandbox line reads
NemoClaw image v0.0.77 → v0.0.76, i.e. the installer is proposing a downgrade fromv0.0.77to the requestedv0.0.76. This is a consequence ofNEMOCLAW_INSTALL_TAG=v0.0.76being older than whatever builtmy-assistantoriginally, but the installer surfaces it as a routine "upgrade" step without warning.Net effect: the "preserve sandboxes on uninstall" contract is broken — the preserved data is unrecoverable by design after uninstall removes its dependencies, and the reinstall path reports success while silently orphaning the user's sandbox.
Environment:
hellonemoclawcolimav22.23.1, npm10.9.8nemoclaw uninstall --yescurl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.76 bashmy-assistant(stopped,v2026.6.10, imagev0.0.77)Steps to reproduce
- Have a working NemoClaw install with at least one registered sandbox (
- Run:
Observe that it preservesmy-assistant, stopped is fine), built on a newer image than the tag you'll reinstall to.rebuild-backupsandsandboxes.jsonunder~/.nemoclaw, but removes the OpenShell CLI, the gateway, all providers, and the Docker image. 3. Confirm the CLI is gone:Expected output
One of the following, consistent behavior:
sandboxes.json), or it clearly warns that preservingsandboxes.jsonwithout those dependencies makes the preserved data unrecoverable and offers to purge it too. On reinstall,my-assistantis either brought back to a usable state on the new gateway or the user is given a concrete remediation path.my-assistantcannot be recovered because its Docker image was removed during uninstall; runnemoclaw sandbox forget my-assistantto clear it, ornemoclaw onboard my-assistantto rebuild"), and does not reportInstallation complete/Existing sandboxes were recovered and upgradedwhen nothing was recovered.In addition, a proposed downgrade (
v0.0.77 → v0.0.76) should be surfaced explicitly rather than framed as a routine upgrade step.Actual output
Uninstall (relevant excerpt):
Reinstall (relevant excerpt):
[3/3] Onboarding [INFO] Recovering and upgrading pre-existing sandboxes before onboarding… Error: × No gateway metadata found for 'nemoclaw'. │ Register it first with: openshell gateway add --name nemoclaw │ Or list available gateways: openshell gateway select [2/8] Starting OpenShell gateway Starting OpenShell Docker-driver gateway... ✓ Docker-driver gateway is healthy ✓ Active gateway set to 'nemoclaw' Stale sandboxes: my-assistant v2026.6.10 unchanged; NemoClaw image v0.0.77 → v0.0.76 (stopped) Skipping 1 sandbox(es) not observed on the selected gateway — verify their recorded gateway or start them first. No running stale sandboxes to rebuild. [INFO] Existing sandboxes recovered; skipping generic onboarding. [INFO] === Installation complete === Existing sandboxes were recovered and upgraded. No new sandbox onboarding was needed.Notable specifics:
[2/6] OpenShell resourcesreportsskippedalongside "Deleted …" — the wording is contradictory. It reads as "Deleted X skipped," which is ambiguous about whether deletion happened. If the intent is "already gone, nothing to delete," the phrasing needs to beSkipped 'nvidia-nim' (already removed), notDeleted provider 'nvidia-nim' skipped.Error: × No gateway metadata found for 'nemoclaw'line is printed mid-flow, then the installer proceeds and printsInstallation complete— the error was swallowed, not addressed.Existing sandboxes were recovered and upgradedandNo new sandbox onboarding was needed, both false in this run. One sandbox was silently skipped and the user is left with no path to recover or forget it.v0.0.77 → v0.0.76) but doesn't call it out as such.Bug Details
[NVB#6432188]