Description
Running nemoclaw <sandbox-name> with no subcommand does NOT print usage; it silently invokes connect. connect has an undocumented side effect: it re-reads the model field from the sandbox's /sandbox/.openclaw/openclaw.json and forces the OpenShell gateway inference route to match.
If the user previously changed inference at the gateway level (e.g. via nemoclaw inference set) but the sandbox-side openclaw.json wasn't updated — which happens when the inference-set sync step fails, see #3725 (NVB#6187474) — every subsequent connect silently rolls the model back. The Switching inference route to ... log line is the only signal, and it looks like normal status output.
Environment
Device: MacBook (M4)
OS: macOS 26.1 (Darwin 25.1.0)
Architecture: arm64
Node.js: v23.10.0
npm: 11.3.0
Docker: 27.4.0 (Colima)
OpenShell CLI: 0.0.39
NemoClaw: v0.0.44
OpenClaw: 2026.4.24 (cbcfdf6)
Steps to Reproduce
-
Set the gateway inference to model A explicitly:
nemoclaw inference set --model nvidia/nemotron-3-super-120b-a12b --provider nvidia-prod --sandbox slack2
-
Confirm the gateway route is now model A (Version increments, Validated Endpoints appears).
-
Without arguments, run:
-
Observe: the CLI did not print help. It connected, AND silently logged "Switching inference route to nvidia-prod/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning for sandbox 'slack2'" / "Version: 8".
-
Run nemoclaw inference get — the gateway model is now model B (the value baked into the sandbox's openclaw.json), NOT what step 1 set.
Expected Result
Either:
nemoclaw <name> with no subcommand prints usage and exits non-zero (typical CLI behavior), OR
- If running
connect is intentional, the connect step must NOT silently revert gateway-level inference settings. At minimum the override must be loud (banner / warning), and there should be a --no-sync-inference flag.
Actual Result
Sample session output:
➜ ~ nemoclaw slack2
Switching inference route to nvidia-prod/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning for sandbox 'slack2'
Gateway inference configured:
Route: inference.local
Provider: nvidia-prod
Model: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning
Version: 8
The user's previous inference set to nemotron-3-super-120b-a12b is silently overridden by the stale model baked into the sandbox's openclaw.json. There is no warning, no diff, no prompt.
Related
NVB#6187475
Description
Running
nemoclaw <sandbox-name>with no subcommand does NOT print usage; it silently invokesconnect.connecthas an undocumented side effect: it re-reads themodelfield from the sandbox's/sandbox/.openclaw/openclaw.jsonand forces the OpenShell gateway inference route to match.If the user previously changed inference at the gateway level (e.g. via
nemoclaw inference set) but the sandbox-sideopenclaw.jsonwasn't updated — which happens when the inference-set sync step fails, see #3725 (NVB#6187474) — every subsequentconnectsilently rolls the model back. TheSwitching inference route to ...log line is the only signal, and it looks like normal status output.Environment
Steps to Reproduce
Set the gateway inference to model A explicitly:
nemoclaw inference set --model nvidia/nemotron-3-super-120b-a12b --provider nvidia-prod --sandbox slack2Confirm the gateway route is now model A (
Versionincrements,Validated Endpointsappears).Without arguments, run:
Observe: the CLI did not print help. It connected, AND silently logged "Switching inference route to nvidia-prod/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning for sandbox 'slack2'" / "Version: 8".
Run
nemoclaw inference get— the gateway model is now model B (the value baked into the sandbox'sopenclaw.json), NOT what step 1 set.Expected Result
Either:
nemoclaw <name>with no subcommand prints usage and exits non-zero (typical CLI behavior), ORconnectis intentional, the connect step must NOT silently revert gateway-level inference settings. At minimum the override must be loud (banner / warning), and there should be a--no-sync-inferenceflag.Actual Result
Sample session output:
The user's previous
inference settonemotron-3-super-120b-a12bis silently overridden by the stale model baked into the sandbox'sopenclaw.json. There is no warning, no diff, no prompt.Related
inference setcrash on vm-driver is the upstream cause: that crash is what leaves the sandbox-sideopenclaw.jsonout of sync, which then makes THIS revert behavior actually destructive instead of theoretical.NVB#6187475