[Linux][Install] nemoclaw uninstall aborts with "Portable lifecycle state is unsafe" on standard single-gateway installs (regression of GH#9709, fixed v0.0.113)
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
> [!WARNING]
> **Regression** — worked in v0.0.113 (verified fixed, GitHub #9709), broken again in v0.0.123.
## Description
`nemoclaw uninstall --yes` (and the documented curl-based fallback `uninstall.sh`) aborts with `Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete` on a standard, single-gateway OpenClaw install, immediately after a fully successful onboard — sandbox reached Ready, inference healthy, no partial or failed onboard state involved. Reproduced 3/3 on three independent Linux hosts in the same automated test run.
This is the same symptom as #9709 ("nemoclaw uninstall aborts with 'Portable lifecycle state is unsafe' on all standard single-gateway OpenClaw installations"), which was fixed and verified working on v0.0.113. The identical symptom is now reproducing again on v0.0.123 — ten releases later.
Platform scope: Reproduced on Linux x86_64 (three distinct Ubuntu versions); other platforms not tested this round.
OpenShell issue: No
## Environment
```text
Device: Linux x86_64 server
OS: Ubuntu 22.04 (also reproduced on two other Ubuntu versions on the same run)
Architecture: x86_64
Node.js: v22.23.2
npm: 10.9.8
Docker: Docker Engine 29.6.1
OpenShell CLI: openshell 0.0.106
NemoClaw: nemoclaw v0.0.123
OpenClaw: unknown (sandbox was destroyed by the failed uninstall before its version could be queried; OpenClaw 2026.7.1 was reported by the onboard step immediately prior on the same host)
```
## Steps to Reproduce
1. Install NemoClaw v0.0.123 on a clean Linux host:
```bash
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.123 bash -s -- --yes-i-accept-third-party-software
```
2. Complete a standard non-interactive onboard against NVIDIA Endpoints (or let the installer's own auto-onboard complete). Confirm the sandbox reaches Ready:
```bash
nemoclaw list
```
3. Immediately run:
```bash
nemoclaw uninstall --yes
```
4. If that fails, try the documented fallback:
```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash -s -- --yes
```
## Expected Result
Uninstall completes the full six-stage teardown and exits 0 — matching the behavior verified working on v0.0.113 for this exact same standard single-gateway scenario.
## Actual Result
Both the official `nemoclaw uninstall --yes` and the documented fallback abort with the same message and no cleanup is performed:
```text
Uninstall exit code: 1
nemoclaw uninstall exited 1: Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete
Falling back to the documented curl-based uninstall.sh produces the identical failure:
Uninstall (curl fallback) exit code: 1
Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete
```
## Logs
```text
Removing existing nemoclaw installation via nemoclaw uninstall --yes
Uninstall exit code: 1
Fall back to removing existing nemoclaw installation via curl -fsSL https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash -s -- --yes
nemoclaw uninstall exited 1: Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete
Uninstall (curl fallback) exit code: 1
Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete
```
Downstream consequence observed on the same run: because the failed uninstall leaves some NemoClaw-managed files behind that a plain uninstall would normally remove, the next fresh install on the same host subsequently failed with:
```text
Installation stopped because {path}/nemoclaw-acp already exists and is not a NemoClaw-managed shim. NemoClaw left it unchanged. Move or remove that path, then rerun the installer.
```
Byte-identical `Portable lifecycle state is unsafe: Completed onboarding session authority is incomplete` message reproduced on two additional independent Linux hosts (different kernel builds, different Docker Engine minor versions) in the same automated run — not a single-host fluke.
Independent manual check: attempted the same onboard-then-uninstall sequence on a separate, persistent Linux host already running other NemoClaw gateway instances (multi-gateway topology). Uninstall there completed successfully on both v0.0.122 and v0.0.123 — but that host's uninstall took a materially different code path throughout ("sibling gateways remain, keeping shared resources" messaging at every stage), so it did not exercise the same single-gateway teardown path as the failing hosts. Not treated as a contradicting result — noted for completeness.
Contributor guide
Research direction
Start with the `nemoclaw uninstall` entry point and the documented `uninstall.sh` fallback, then reproduce the onboard-then-uninstall sequence on Linux at v0.0.123. Trace the single-gateway teardown check that emits `Portable lifecycle state is unsafe`; done means both uninstall paths complete all six stages, remove managed files, and exit 0 without breaking a subsequent install.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell, typescript
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100