Skip to content

[All Platforms][Install] nemoclaw uninstall does not remove openshell-sandbox / openshell-gateway binaries — leaves stale state that breaks subsequent installs #3455

@zNeill

Description

@zNeill

Description

Description

`nemoclaw uninstall` completes successfully (exit 0, all 6 phases report "Removed" /
"Deleted") but only removes the `openshell` CLI binary from `~/.local/bin/`. The
helper binaries `openshell-sandbox` and `openshell-gateway` — both installed by
`./install.sh` (and by curl|bash) into the same directory — are left behind.

A subsequent install of a DIFFERENT NemoClaw version then fails with a version-
mismatch error because the leftover openshell binary on disk is newer than the
incoming NemoClaw release's max supported openshell version.
Environment
Device:        GitLab CI runner host (nemoclaw-runner-ubuntu24-new)
OS:            Ubuntu 24.04
Architecture:  x86_64
Node.js:       v22.22.2
npm:           10.9.7
Docker:        29.4.0
OpenShell CLI: openshell 0.0.39 (residual, before reproducer)
NemoClaw:      v0.0.39-45-gc517d622c (uninstalled before reproducer)
OpenClaw:      N/A (uninstall completes before any OpenClaw run)
Steps to Reproduce
1. Clean Linux host with Node 22, Docker, etc.
2. Install NemoClaw from main source: git clone NemoClaw && cd NemoClaw && ./install.sh
   This places openshell 0.0.39 binaries at:
     ~/.local/bin/openshell
     ~/.local/bin/openshell-gateway
     ~/.local/bin/openshell-sandbox
3. Run: nemoclaw uninstall --yes
   Observe output reports successful cleanup:
     [3/6] NemoClaw CLI
     Removed /home/.../.local/bin/nemoclaw
     Removed NemoClaw PATH entries from .bashrc
     ...
     [6/6] State and binaries
     Removed /home/.../.local/bin/openshell
     ...
     NemoClaw
     Claws retracted. Until next time.
4. ls ~/.local/bin/
   Observe: openshell-sandbox and openshell-gateway are STILL THERE.

5. Install a DIFFERENT NemoClaw version that pins a different openshell range,
   e.g. via test-by-templates.mjs → curl|bash install of v0.0.38:
     NEMOCLAW_TEST_INSTALL_TAG=v0.0.38 npm run test:sanity

6. The new install fails immediately with:
     [install] openshell 0.0.39 is above the maximum (0.0.36) supported by this NemoClaw release.
     Upgrade NemoClaw first.
   Even though the user just ran `nemoclaw uninstall` (which exited 0)!
Expected Result
After `nemoclaw uninstall --yes` exits 0, ALL openshell-related binaries are
removed:
  ~/.local/bin/openshell             (CLI wrapper)
  ~/.local/bin/openshell-gateway     (gateway binary)
  ~/.local/bin/openshell-sandbox     (sandbox binary)

A subsequent fresh install of any NemoClaw version (different from the one that
was just uninstalled) should succeed without version-mismatch errors.
Actual Result
Only `openshell` (CLI wrapper) is removed. `openshell-gateway` and
`openshell-sandbox` binaries stay on disk:

$ ls -la ~/.local/bin/openshell* (after uninstall)
-rwxr-xr-x 1 gitlab-runner gitlab-runner 17920016 May 13 16:59 .../openshell-sandbox

Then v0.0.38 install fails:
[install] Detected Linux (x86_64)
[install] openshell 0.0.39 is above the maximum (0.0.36) supported by this NemoClaw release.
Upgrade NemoClaw first.
Curl Bash Installation exit code: 1

This bug compounds with the broader dead-loop onboarding bug (filed separately
as NVBug 6171920): a QA flow that mixes `main` HEAD dev-install with `vX.Y.Z`
tag-install will repeatedly fail until the user knows to manually delete the
stragglers.
Logs
nemoclaw uninstall trace (relevant lines — note phase [6/6] removes only "openshell"):

[1/6] Stopping services
[2/6] OpenShell resources
  Deleted all OpenShell sandboxes
  Deleted provider 'nvidia-nim'
  Deleted provider 'vllm-local'
  Deleted provider 'ollama-local'
  Deleted provider 'nvidia-ncp'
  Deleted provider 'nim-local'
  Destroyed gateway 'nemoclaw' skipped
[3/6] NemoClaw CLI
  Removed global NemoClaw CLI package
  Removed /home/gitlab-runner/.local/bin/nemoclaw
  Removed NemoClaw PATH entries from /home/gitlab-runner/.bashrc
[4/6] Docker resources
  No NemoClaw/OpenShell Docker containers found
  Removed Docker image e438a1c71883
[5/6] Ollama models
  Keeping Ollama models as requested.
[6/6] State and binaries
  No /swapfile found; skipping swap cleanup.
  Removed /home/gitlab-runner/.local/bin/openshell           ← ONLY this one
  Removed /home/gitlab-runner/.nemoclaw
  Removed /home/gitlab-runner/.config/openshell
NemoClaw
Claws retracted. Until next time.

Post-uninstall directory listing on ubuntu24-new (during pipeline 51140577 retry diagnosis):
$ ls -la ~/.local/bin/openshell*
-rwxr-xr-x 1 gitlab-runner gitlab-runner 17920016 May 13 16:59 openshell-sandbox

Downstream impact:
Test pipeline 51140577 had ubuntu24 (and previously ubuntu24-gpu) fail on
v0.0.38 sanity install because the upstream main-HEAD experiments left
openshell-sandbox 0.0.39 on disk. Manual cleanup
(`rm ~/.local/bin/openshell-sandbox`) was required to recover.

Suggested fix:
In the uninstall source (likely scripts/uninstall.sh or src/commands/uninstall.ts):
[6/6] phase should glob-remove all openshell-* binaries, not just `openshell`:
  rm -f ~/.local/bin/openshell ~/.local/bin/openshell-sandbox ~/.local/bin/openshell-gateway

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_Install

[NVB#6171984]

Metadata

Metadata

Assignees

Labels

NV QABugs found by the NVIDIA QA Teamarea: cliCommand line interface, flags, terminal UX, or outputarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recovery

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions