Skip to content

[DGX Spark][Install] curl|bash install without license flag leaves partial install state — nemoclaw binary on PATH but no usage-notice.json #2671

@hulynn

Description

@hulynn

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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    NV QABugs found by the NVIDIA QA Teamarea: cliCommand line interface, flags, terminal UX, or outputplatform: dgx-sparkAffects DGX Spark hardware or workflows

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions