Skip to content

[DGX Spark][Brev][Install] curl|bash install: --yes-i-accept-third-party-software flag is silently ignored without --non-interactive in non-TTY mode #2670

@hulynn

Description

@hulynn

Description

Description

The installer accepts --yes-i-accept-third-party-software (and the equivalent NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 env var) per `bash install.sh --help`, but in curl|bash mode (no TTY) the flag alone is silently ignored — the installer still tries to read /dev/tty and fails with "Interactive third-party software acceptance requires a TTY". The flag only takes effect when --non-interactive (or NEMOCLAW_NON_INTERACTIVE=1) is also passed. The flag's name and the --help text both imply it is sufficient on its own; the gating on --non-interactive is undocumented from the user's perspective and contradicts the flag name. The error message does point users at the fix, but a flag that is named "yes-i-accept" should make the install proceed.
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
npm:           10.9.7
Docker:        Docker Engine 29.1.3
OpenShell CLI: openshell 0.0.36
NemoClaw:      v0.0.29
OpenClaw:      N/A (onboard not reached)
Steps to Reproduce
1. On a host without TTY (e.g. via ssh non-interactive, scripted CI, curl|bash):
     rm -rf ~/.nemoclaw ~/.openclaw ~/.local/bin/nemoclaw ~/.local/bin/openshell

2. Run with the license flag alone, no --non-interactive:
     curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --yes-i-accept-third-party-software
     echo "EXIT=$?"

3. Observe: same /dev/tty error and exit 1 as if the flag had not been passed.

4. Run with both flags:
     curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --non-interactive --yes-i-accept-third-party-software
     echo "EXIT=$?"

5. Observe: license is accepted, ~/.nemoclaw/usage-notice.json is created, install proceeds.
Expected Result
Either:
(a) --yes-i-accept-third-party-software alone implies non-interactive license acceptance and the install proceeds in curl|bash mode (the flag's name and intent), OR
(b) The flag is renamed and --help is updated to make the dependency on --non-interactive explicit, e.g. "--yes-i-accept-third-party-software (only honored with --non-interactive)".

The current behavior — flag accepted by parser, silently ignored at execution — is the worst-of-both: users believe they accepted, but install still fails.
Actual Result
$ curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --yes-i-accept-third-party-software
...
[3/3] Onboarding
  Detected container runtime: docker
  /tmp/tmp.iApreLz7Uk/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 ===

The script's show_usage_notice() at install.sh:~360-380 first checks `if [ "${NON_INTERACTIVE:-}" = "1" ]`; only inside that branch does it honor `--yes-i-accept-third-party-software`. In the non-TTY + flag-only path, control falls through to `exec 3
Side-effect: this same execution path also shows the raw `/dev/tty: No such device or address` bash error before the friendly [ERROR] message, leaking implementation detail to users — recommend wrapping the redirect in a function that suppresses raw stderr.

Bug Details

Field Value
Priority Unprioritized
Action Dev - Open - To fix
Disposition Open issue
Module Machine Learning - NemoClaw
Keyword NemoClaw, NemoClaw_CLI&UX, NEMOCLAW_GH_SYNC_APPROVAL, NemoClaw_Install

[NVB#6126094]

Metadata

Metadata

Assignees

No one assigned

    Labels

    NV QABugs found by the NVIDIA QA Teamplatform: dgx-sparkAffects DGX Spark hardware or workflowsplatform: ubuntuAffects Ubuntu Linux environments

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions