[All Platforms][Install] Installer lookup-failure message doesn't distinguish refused-vs-timed-out or confirm the CLI was unchanged
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Description
When the bootstrap installer's maintained-release-tag lookup (`git ls-remote --tags origin` against github.com) fails to connect (connection refused) or stalls until its own bound is hit, both failure modes produce the exact same generic message: "[ERROR] Requested install ref 'lkg' is not available from https://github.com/NVIDIA/NemoClaw.git. Check NEMOCLAW_INSTALL_TAG/NEMOCLAW_INSTALL_REF and try again." This does not distinguish an unverifiable (connection-refused) lookup from a timed-out lookup, and does not explicitly state that the installed CLI was left unchanged.
The installed CLI genuinely IS left unchanged in both cases (verified via version + SHA256 of the CLI binary before/after each attempt) -- this is a message-content gap, not a state-corruption bug.
Platform scope: All Platforms -- reproduced on Ubuntu 24.04 x86_64, but this is pure bootstrap-script network/error-handling logic with no platform conditional.
Regression: Unknown -- earlier versions not tested this session.
## Environment
```text
Device: Ubuntu 24.04 x86_64 host
OS: Ubuntu 24.04
Architecture: x86_64
NemoClaw: v0.0.122
```
## Steps to Reproduce
1. Record the installed CLI's version and SHA256 hash: `nemoclaw --version; sha256sum "$(command -v nemoclaw)"`.
2. Block outbound TCP:443 to github.com's resolved IP: `sudo iptables -I OUTPUT -d -p tcp --dport 443 -j REJECT --reject-with tcp-reset` (connection-refused mode).
3. Run `curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_NON_INTERACTIVE=1 bash`; capture output and exit code.
4. Remove the REJECT rule, re-verify CLI version/hash unchanged.
5. Repeat steps 2-4 with `-j DROP` instead of REJECT (stall/timeout mode).
6. Compare the two error messages.
## Expected Result
Each installer attempt exits nonzero before replacement. Output distinguishes an unverifiable-version lookup failure from a timed-out lookup, and explicitly states that the installed CLI was not changed.
## Actual Result
Both the connection-refused and the timed-out (132s) scenarios produce the byte-identical message:
```text
[ERROR] Requested install ref 'lkg' is not available from https://github.com/NVIDIA/NemoClaw.git.
Check NEMOCLAW_INSTALL_TAG/NEMOCLAW_INSTALL_REF and try again.
EXIT_CODE=1
```
Exit code 1 in both cases (correct). No mention of "installed CLI was not changed" in either message, even though the CLI genuinely was unchanged (verified via hash, both times).
## Logs
Connection-refused mode:
```text
fatal: unable to access 'https://github.com/NVIDIA/NemoClaw.git/': Failed to connect to github.com port 443 after 3 ms: Couldn't connect to server
[ERROR] Requested install ref 'lkg' is not available from https://github.com/NVIDIA/NemoClaw.git.
Check NEMOCLAW_INSTALL_TAG/NEMOCLAW_INSTALL_REF and try again.
EXIT_CODE=1
```
Stall/timeout mode (132s to fail):
```text
fatal: unable to access 'https://github.com/NVIDIA/NemoClaw.git/': Failed to connect to github.com port 443 after 132418 ms: Couldn't connect to server
[ERROR] Requested install ref 'lkg' is not available from https://github.com/NVIDIA/NemoClaw.git.
Check NEMOCLAW_INSTALL_TAG/NEMOCLAW_INSTALL_REF and try again.
EXIT_CODE=1
```
Contributor guide
Assessment
This issue has not been assessed yet.