Description
Description
When curl|bash install runs without --yes-i-accept-third-party-software (or with the flag alone in non-TTY mode), the installer fails at the third-party-software acceptance step with exit code 1, but Phase [1/3] Node.js + Phase [2/3] NemoClaw CLI have already run to completion. The user is left in a partial-install state: /home//.local/bin/nemoclaw exists and works, ~/.nemoclaw/source/ is populated, but ~/.nemoclaw/usage-notice.json was never created (license never accepted). A retry attempt produces an awkward state — `nemoclaw --version` works, but no onboard / no license. Atomic semantics would either roll back the CLI install on license-step failure, or skip the CLI install until license is accepted.
Environment
Device: DGX Spark / NVIDIA GB300 (host: galaxy-ts2-052)
OS: Ubuntu 24.04.3 LTS (Linux 6.17.0-1008-nvidia-64k)
Architecture: aarch64
Node.js: v22.22.2 (installed by NemoClaw via nvm)
npm: 10.9.7
Docker: Docker Engine 29.1.3
OpenShell CLI: openshell 0.0.36
NemoClaw: v0.0.29 (CLI lands on PATH despite installer exit 1)
OpenClaw: N/A (onboard not reached)
Steps to Reproduce
1. On a clean Ubuntu 24.04 host (no prior NemoClaw install):
rm -rf ~/.nemoclaw ~/.openclaw ~/.local/bin/nemoclaw ~/.local/bin/openshell
2. Run plain curl|bash without any acceptance flag:
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
echo "EXIT=$?"
3. Observe: installer exits with code 1 at "Interactive third-party software acceptance requires a TTY" error.
4. Inspect post-failure state:
which nemoclaw
nemoclaw --version
ls -la ~/.nemoclaw/usage-notice.json
ls -la ~/.nemoclaw/source/
Expected Result
Either:
(a) Atomic install — license-step failure rolls back the CLI install so retry starts clean, OR
(b) Defer CLI install — phases [1/3] and [2/3] run only after license acceptance, so a license failure leaves no CLI on PATH, OR
(c) On any retry, installer detects a partial state and proceeds without re-cloning / rebuilding (today the user has to manually rm -rf to recover).
Actual Result
=== Test 517919 step 1 (curl|bash WITHOUT --yes-i-accept-third-party-software) ===
[1/3] Node.js -- runs
[2/3] NemoClaw CLI
...
[INFO] Verified: nemoclaw is available at /home/.../bin/nemoclaw -- CLI installed
[3/3] Onboarding
Detected container runtime: docker
/tmp/tmp.IcX2ZSESKL/source/scripts/install.sh: line 368: /dev/tty: No such device or address
[ERROR] Interactive third-party software acceptance requires a TTY. Re-run in a terminal or set NEMOCLAW_NON_INTERACTIVE=1 with --yes-i-accept-third-party-software.
=== EXIT CODE: 1 ===
--- post check ---
/home/lab/.local/bin/nemoclaw -- on PATH despite exit 1
total 12
drwxrwxr-x 3 lab lab 4096 Apr 29 07:34 .
drwxr-x--- 11 lab lab 4096 Apr 29 07:34 ..
drwxrwxr-x 20 lab lab 4096 Apr 29 07:34 source -- source tree populated
-- usage-notice.json: missing
The user is now in a partial state: nemoclaw command works, but legally the third-party software notice has not been accepted, and onboard cannot proceed.
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#6126038]
Description
Description
Environment Steps to Reproduce1. On a clean Ubuntu 24.04 host (no prior NemoClaw install): rm -rf ~/.nemoclaw ~/.openclaw ~/.local/bin/nemoclaw ~/.local/bin/openshell 2. Run plain curl|bash without any acceptance flag: curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash echo "EXIT=$?" 3. Observe: installer exits with code 1 at "Interactive third-party software acceptance requires a TTY" error. 4. Inspect post-failure state: which nemoclaw nemoclaw --version ls -la ~/.nemoclaw/usage-notice.json ls -la ~/.nemoclaw/source/Expected Result Actual Result=== Test 517919 step 1 (curl|bash WITHOUT --yes-i-accept-third-party-software) === [1/3] Node.js -- runs [2/3] NemoClaw CLI ... [INFO] Verified: nemoclaw is available at /home/.../bin/nemoclaw -- CLI installed [3/3] Onboarding Detected container runtime: docker /tmp/tmp.IcX2ZSESKL/source/scripts/install.sh: line 368: /dev/tty: No such device or address [ERROR] Interactive third-party software acceptance requires a TTY. Re-run in a terminal or set NEMOCLAW_NON_INTERACTIVE=1 with --yes-i-accept-third-party-software. === EXIT CODE: 1 === --- post check --- /home/lab/.local/bin/nemoclaw -- on PATH despite exit 1 total 12 drwxrwxr-x 3 lab lab 4096 Apr 29 07:34 . drwxr-x--- 11 lab lab 4096 Apr 29 07:34 .. drwxrwxr-x 20 lab lab 4096 Apr 29 07:34 source -- source tree populated -- usage-notice.json: missing The user is now in a partial state: nemoclaw command works, but legally the third-party software notice has not been accepted, and onboard cannot proceed.Bug Details
[NVB#6126038]