You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During onboarding with an NVIDIA cloud provider (nemoclaw onboard --resume), NemoClaw writes a providers key into the sandbox's /sandbox/.openclaw/openclaw.json configuration file. However, OpenClaw's config schema does not recognize this key at the root level, causing every subsequent openclaw command to emit:
Invalid config at /sandbox/.openclaw/openclaw.json:
- <root>: Unrecognized key: "providers"
This includes openclaw config validate, openclaw models status, openclaw agent, etc.
Steps to reproduce
Run nemoclaw onboard and select the NVIDIA Endpoints cloud provider
SSH into the sandbox: openshell sandbox ssh-config <name> → ssh ...
Run any openclaw command, e.g. openclaw config validate
Observe the "Unrecognized key: providers" error on every invocation
Expected behavior
The inference provider configuration should be written to the correct location. Based on investigation, it appears:
The agent-levelmodels.json at ~/.openclaw/agents/main/agent/models.json is the correct place for provider definitions (baseUrl, api, models list)
The agent-levelauth-profiles.json is the correct place for auth credentials
The root openclaw.json config schema does not accept a providers key
Root cause
In bin/lib/onboard.js, the patchStagedDockerfile function correctly writes provider config as Dockerfile ARGs (NEMOCLAW_INFERENCE_BASE_URL, NEMOCLAW_PROVIDER_KEY, etc.). However, when the sandbox is created from the community image (ghcr.io/nvidia/openshell-community/sandboxes/openclaw:latest) rather than a custom-built Dockerfile, these ARGs are never processed. The resulting sandbox ends up with a providers block injected into openclaw.json instead of being routed through the proper models.json + auth-profiles.json mechanism.
Workaround
Remove the providers key from /sandbox/.openclaw/openclaw.json
Add the inference provider definition to ~/.openclaw/agents/main/agent/models.json:
Bug description
During onboarding with an NVIDIA cloud provider (
nemoclaw onboard --resume), NemoClaw writes aproviderskey into the sandbox's/sandbox/.openclaw/openclaw.jsonconfiguration file. However, OpenClaw's config schema does not recognize this key at the root level, causing every subsequentopenclawcommand to emit:This includes
openclaw config validate,openclaw models status,openclaw agent, etc.Steps to reproduce
nemoclaw onboardand select the NVIDIA Endpoints cloud providerskipVerify: truefix from Onboarding fails at inference step: NVIDIA provider missing skipVerify flag #1130)openshell sandbox ssh-config <name>→ssh ...openclaw config validateExpected behavior
The inference provider configuration should be written to the correct location. Based on investigation, it appears:
models.jsonat~/.openclaw/agents/main/agent/models.jsonis the correct place for provider definitions (baseUrl, api, models list)auth-profiles.jsonis the correct place for auth credentialsopenclaw.jsonconfig schema does not accept aproviderskeyRoot cause
In
bin/lib/onboard.js, thepatchStagedDockerfilefunction correctly writes provider config as Dockerfile ARGs (NEMOCLAW_INFERENCE_BASE_URL,NEMOCLAW_PROVIDER_KEY, etc.). However, when the sandbox is created from the community image (ghcr.io/nvidia/openshell-community/sandboxes/openclaw:latest) rather than a custom-built Dockerfile, these ARGs are never processed. The resulting sandbox ends up with aprovidersblock injected intoopenclaw.jsoninstead of being routed through the propermodels.json+auth-profiles.jsonmechanism.Workaround
providerskey from/sandbox/.openclaw/openclaw.json~/.openclaw/agents/main/agent/models.json:{ "providers": { "inference": { "baseUrl": "https://inference.local/v1", "api": "openai-completions", "apiKey": "NVIDIA_API_KEY", "models": [{ "id": "nvidia/nemotron-3-super-120b-a12b", "name": "NVIDIA Nemotron 3 Super 120B", "reasoning": false, "input": ["text"], "contextWindow": 131072, "maxTokens": 4096 }] } } }~/.openclaw/agents/main/agent/auth-profiles.json:{ "version": 1, "profiles": { "inference:manual": { "type": "api_key", "provider": "inference", "key": "gateway-proxied" } }, "order": { "inference": ["inference:manual"] } }Related
Environment