Skip to content

sandbox container is fallen with exit code 1 when deploying NemoClaw with GPU #4713

@MasakiYamagishiSCSK

Description

@MasakiYamagishiSCSK

Description

I'm trying deploying NemoClaw with GPU.
I applied patch that solved gpu onboarding issue 4316.
But the patched GPU sandbox container exits with code 1 after NemoClaw creates the OpenShell sandbox container with NVIDIA GPU access.
This appears to be a new failure point after the Docker GPU patch is applied.

I attached logs output in $HOME/.nemoclaw/onboard-failures.

docker-inspect.json
docker-logs.txt
docker-network-summary.txt
patched-container-state.json
summary.txt

Reproduction Steps

$ nvidia-ctk --version
NVIDIA Container Toolkit CLI version 1.18.1
commit: efe99418ef87500dbe059cadc9ab418b2815b9d5

$ sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "default-runtime": "nvidia",
  "runtimes": {
    "nvidia": {
      "args": [],
      "path": "nvidia-container-runtime"
    }
  },
  "features": {
    "cdi": true
  }
}
EOF

$ sudo systemctl restart docker

$ sudo mkdir -p /etc/cdi

$ sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

$ sudo chmod 644 /etc/cdi/nvidia.yaml

$ nvidia-ctk cdi list
INFO[0000] Found 3 CDI devices
nvidia.com/gpu=0
nvidia.com/gpu=GPU-f4737b8e-40dc-1a26-f9ec-a2cae2ba46a9
nvidia.com/gpu=all

$ docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
...
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.77                 Driver Version: 565.77         CUDA Version: 12.7     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0 Off |                    0 |
|  0%   50C    P8             21W /  500W |    1254MiB /  23028MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+ 
...

$ git clone https://github.com/NVIDIA/NemoClaw.git

$ cd NemoClaw/

$ git fetch origin main --tags

$ git switch -c pinned/gpu-onboard-4668-a2c020dc7 a2c020dc7

$ nvm use 22
Now using node v22.22.3 (npm v10.9.8)

$ npm ci

$ npm install --include=dev --ignore-scripts

$ npm run build:cli

$ node ./bin/nemoclaw.js --version
nemoclaw v0.0.56-37-ga2c020dc7

$ node ./bin/nemoclaw.js onboard \
  --fresh \
  --gpu
  NemoClaw Onboarding
  
  ===================
  [1/8] Preflight checks
  ──────────────────────────────────────────────────
  ✓ Docker is running
  ✓ Docker can start bridge containers
  ✓ Container DNS resolution works
  ✓ Container runtime: docker
  ✓ Container runtime resources: 24 vCPU / 94.0 GiB
  ✓ openshell CLI: openshell 0.0.44
  ✓ Port 8080 available (OpenShell gateway)
  ✓ NVIDIA GPU detected (NVIDIA GeForce RTX 4090, 23028 MB)
  ✓ Docker CDI GPU support detected (/etc/cdi/nvidia.yaml, /var/run/cdi/nvidia.yaml)
  ✓ Sandbox GPU: enabled (1)
  ✓ Memory OK: 96292 MB RAM + 2047 MB swap
  GPU passthrough requested; passing --gpu to OpenShell gateway and sandbox creation.
  
  [2/8] Starting OpenShell gateway
  ──────────────────────────────────────────────────
  Starting OpenShell Docker-driver gateway...
  Gateway log: /home/masaki/.local/state/nemoclaw/openshell-docker-gateway/openshell-gateway.log
  OpenShell gateway compatibility patch active (host glibc 2.35 is older than openshell-gateway requirement 2.39).
  Running openshell-gateway inside a Docker compatibility container.
  Compatibility gateway bind: 0.0.0.0 (required for Docker sandbox callbacks).
  ✓ Docker-driver gateway is healthy

  [3/8] Configuring inference provider
  ──────────────────────────────────────────────────
  Detected local inference option: Ollama

  Inference options:
    1) NVIDIA Endpoints
    2) OpenAI
    3) Other OpenAI-compatible endpoint
    4) Anthropic
    5) Other Anthropic-compatible endpoint
    6) Google Gemini
    7) Local Ollama (localhost:11434) — running (suggested)
    8) Model Router (experimental)

  Choose [1]: 7
  Configuring Ollama systemd loopback override...
  Applying an Ollama systemd override (OLLAMA_HOST=127.0.0.1:11434). The next steps use sudo to write the drop-in, reload systemd, and restart the service; you may be prompted for your password.
  ✓ Using Ollama on localhost:11434 (proxy on :11435)

  Ollama models:
    1) gemma4:31b
    2) bge-m3:latest
    3) gpt-oss:20b
    4) Other...

  Choose model [1]: 3
  Loading Ollama model: gpt-oss:20b
  Chat Completions API available — OpenClaw will use openai-completions.
  ✓ Using Ollama runtime context length: 4096 tokens
  Sandbox name (1-63 characters, lowercase, starts with a letter, letters/numbers/internal hyphens only, ends with letter/number) [my-assistant]: my-assistant

  ──────────────────────────────────────────────────
  Review configuration
  ──────────────────────────────────────────────────
  Provider:      ollama-local
  Model:         gpt-oss:20b
  API key:       (not required for ollama-local)
  Web search:    disabled
  Managed tools: none
  Messaging:     none
  Sandbox name:  my-assistant
  Note:          Sandbox build typically takes 3–8 minutes on this host.
  ──────────────────────────────────────────────────
  Web search and messaging channels will be prompted next.
  Apply this configuration? [Y/n]: Y

  [4/8] Setting up inference provider
  ──────────────────────────────────────────────────
✓ Active gateway set to 'nemoclaw'
✓ Created provider ollama-local
Gateway inference configured:

  Route: inference.local
  Provider: ollama-local
  Model: gpt-oss:20b
  Version: 1
  Timeout: 180s
  Priming Ollama model: gpt-oss:20b
  ✓ Inference route set: ollama-local / gpt-oss:20b
  Enable Brave Web Search? [y/N]: N

  [5/8] Messaging channels
  ──────────────────────────────────────────────────

  Available messaging channels:
    [1] ○ telegram — Telegram bot messaging
    [2] ○ discord — Discord bot messaging
    [3] ○ wechat — WeChat (personal) bot messaging
    [4] ○ slack — Slack bot messaging
    [5] ○ whatsapp — WhatsApp Web messaging (QR pairing)

  Press 1-5 to toggle, Enter when done (none selected skips):
  Skipping messaging channels.

  Resource profiles:
    1) creator (cpu=50%, ram=50%)
    2) gamer (cpu=25%, ram=25%)
    3) game-developer (cpu=60%, ram=60%)
    4) developer (cpu=75%, ram=75%)
    5) custom (enter values manually)
    6) No profile (OpenShell defaults)
  Choose [6]: 6

  [6/8] Creating sandbox
  ──────────────────────────────────────────────────
  Docker-driver GPU patch active; allowing /proc writes required by Docker GPU initialization.
  Creating sandbox 'my-assistant' (this takes a few minutes on first run)...
  Pinning base image to sha256:62abb74f274f...
  Building sandbox image...
  Building image openshell/sandbox-from:1780491816 from /tmp/nemoclaw-build-BhSQcy/Dockerfile
  Step 1/80 : ARG BASE_IMAGE=ghcr.io/nvidia/nemoclaw/sandbox-base@sha256:62abb74f274fcb4ee1a2b96f57f437ea581937b4...
  Step 1/80 completed in 0.0s (ARG BASE_IMAGE=ghcr.io/nvidia/nemoclaw/sandbox-base@sha256:62abb74f274fcb4ee1a2b96...
  Step 2/80 : FROM node:22-trixie-slim@sha256:2d9f5c76c8f4dd36e8f253bee5d828a83a6c09f36188f0b0414325232e0b175d AS...
  Step 2/80 completed in 0.0s (FROM node:22-trixie-slim@sha256:2d9f5c76c8f4dd36e8f253bee5d828a83a6c09f36188f0b041...
  Step 3/80 : ENV NPM_CONFIG_AUDIT=false     NPM_CONFIG_FUND=false     NPM_CONFIG_UPDATE_NOTIFIER=false     NPM_C...
  Step 3/80 completed in 0.0s (ENV NPM_CONFIG_AUDIT=false NPM_CONFIG_FUND=false NPM_CONFIG_UPDATE_NOTIFIER=false ...
  Step 4/80 : COPY nemoclaw/package.json nemoclaw/package-lock.json nemoclaw/tsconfig.json /opt/nemoclaw/
  Step 4/80 completed in 0.0s (COPY nemoclaw/package.json nemoclaw/package-lock.json nemoclaw/tsconfig.json /opt/...
  Step 5/80 : COPY nemoclaw/src/ /opt/nemoclaw/src/
  Step 5/80 completed in 0.0s (COPY nemoclaw/src/ /opt/nemoclaw/src/)
  Step 6/80 : WORKDIR /opt/nemoclaw
  Step 6/80 completed in 0.0s (WORKDIR /opt/nemoclaw)
  Step 7/80 : RUN npm ci && npm run build
  Step 7/80 completed in 0.0s (RUN npm ci && npm run build)
  Step 8/80 : FROM ${BASE_IMAGE}
  Step 8/80 completed in 0.0s (FROM ${BASE_IMAGE})
  Step 9/80 : ARG OPENCLAW_VERSION=2026.5.22
  Step 9/80 completed in 0.0s (ARG OPENCLAW_VERSION=2026.5.22)
  Step 10/80 : ARG OPENCLAW_2026_5_22_INTEGRITY=sha512-m+zgBELGbCHjWB1IWF5WSWNPr480cMKOMff2OF72c8A0AMD4hC/9+qwYtz...
  Step 10/80 completed in 0.0s (ARG OPENCLAW_2026_5_22_INTEGRITY=sha512-m+zgBELGbCHjWB1IWF5WSWNPr480cMKOMff2OF72c...
  Step 11/80 : RUN set -eu;     apt-mark manual procps e2fsprogs tmux 2>/dev/null || true;     (apt-get remove --...
  Step 11/80 completed in 0.0s (RUN set -eu; apt-mark manual procps e2fsprogs tmux 2>/dev/null || true; (apt-get ...
  Step 12/80 : COPY --from=builder /opt/nemoclaw/dist/ /opt/nemoclaw/dist/
  Step 12/80 completed in 0.0s (COPY --from=builder /opt/nemoclaw/dist/ /opt/nemoclaw/dist/)
  Step 13/80 : COPY nemoclaw/openclaw.plugin.json /opt/nemoclaw/
  Step 13/80 completed in 0.0s (COPY nemoclaw/openclaw.plugin.json /opt/nemoclaw/)
  Step 14/80 : COPY nemoclaw/package.json nemoclaw/package-lock.json /opt/nemoclaw/
  Step 14/80 completed in 0.0s (COPY nemoclaw/package.json nemoclaw/package-lock.json /opt/nemoclaw/)
  Step 15/80 : COPY nemoclaw-blueprint/ /opt/nemoclaw-blueprint/
  Step 15/80 completed in 0.0s (COPY nemoclaw-blueprint/ /opt/nemoclaw-blueprint/)
  Step 16/80 : RUN chmod -R a+rX /opt/nemoclaw /opt/nemoclaw-blueprint/
  Step 16/80 completed in 0.0s (RUN chmod -R a+rX /opt/nemoclaw /opt/nemoclaw-blueprint/)
  Step 17/80 : WORKDIR /opt/nemoclaw
  Step 17/80 completed in 0.0s (WORKDIR /opt/nemoclaw)
  Step 18/80 : ENV NPM_CONFIG_AUDIT=false     NPM_CONFIG_FUND=false     NPM_CONFIG_UPDATE_NOTIFIER=false     NPM_...
  Step 18/80 completed in 0.0s (ENV NPM_CONFIG_AUDIT=false NPM_CONFIG_FUND=false NPM_CONFIG_UPDATE_NOTIFIER=false...
  Step 19/80 : RUN npm ci --omit=dev
  Step 19/80 completed in 0.0s (RUN npm ci --omit=dev)
  Step 20/80 : COPY scripts/patch-openclaw-tool-catalog.js /usr/local/lib/nemoclaw/patch-openclaw-tool-catalog.js
  Step 20/80 completed in 0.0s (COPY scripts/patch-openclaw-tool-catalog.js /usr/local/lib/nemoclaw/patch-opencla...
  Step 21/80 : COPY scripts/patch-openclaw-chat-send.js /usr/local/lib/nemoclaw/patch-openclaw-chat-send.js
  Step 21/80 completed in 0.0s (COPY scripts/patch-openclaw-chat-send.js /usr/local/lib/nemoclaw/patch-openclaw-c...
  Step 22/80 : RUN chmod 755 /usr/local/lib/nemoclaw/patch-openclaw-tool-catalog.js         /usr/local/lib/nemocl...
  Step 22/80 completed in 0.0s (RUN chmod 755 /usr/local/lib/nemoclaw/patch-openclaw-tool-catalog.js /usr/local/l...
  Step 23/80 : RUN set -eu;     echo "$OPENCLAW_VERSION" | grep -qxE '[0-9]+(\.[0-9]+)*'         || { echo "ERROR...
  Step 23/80 completed in 0.0s (RUN set -eu; echo "$OPENCLAW_VERSION" | grep -qxE '[0-9]+(\.[0-9]+)*' || { echo "...
  Step 24/80 : RUN set -eu;     OC_DIST=/usr/local/lib/node_modules/openclaw/dist;     OC_VERSION="$(openclaw --v...
  Step 24/80 completed in 0.0s (RUN set -eu; OC_DIST=/usr/local/lib/node_modules/openclaw/dist; OC_VERSION="$(ope...
  Step 25/80 : RUN node /usr/local/lib/nemoclaw/patch-openclaw-chat-send.js     /usr/local/lib/node_modules/openc...
  Step 25/80 completed in 0.0s (RUN node /usr/local/lib/nemoclaw/patch-openclaw-chat-send.js /usr/local/lib/node_...
  Step 26/80 : RUN node /usr/local/lib/nemoclaw/patch-openclaw-tool-catalog.js     /usr/local/lib/node_modules/op...
  Step 26/80 completed in 0.0s (RUN node /usr/local/lib/nemoclaw/patch-openclaw-tool-catalog.js /usr/local/lib/no...
  Step 27/80 : RUN mkdir -p /sandbox/.nemoclaw/blueprints/0.1.0     && cp -r /opt/nemoclaw-blueprint/* /sandbox/....
  Step 27/80 completed in 0.0s (RUN mkdir -p /sandbox/.nemoclaw/blueprints/0.1.0 && cp -r /opt/nemoclaw-blueprint...
  Step 28/80 : COPY scripts/lib/sandbox-init.sh /usr/local/lib/nemoclaw/sandbox-init.sh
  Step 28/80 completed in 0.0s (COPY scripts/lib/sandbox-init.sh /usr/local/lib/nemoclaw/sandbox-init.sh)
  Step 29/80 : COPY scripts/nemoclaw-start.sh /usr/local/bin/nemoclaw-start
  Step 29/80 completed in 0.0s (COPY scripts/nemoclaw-start.sh /usr/local/bin/nemoclaw-start)
  Step 30/80 : COPY nemoclaw-blueprint/scripts/*.js /usr/local/lib/nemoclaw/preloads/
  Step 30/80 completed in 0.0s (COPY nemoclaw-blueprint/scripts/*.js /usr/local/lib/nemoclaw/preloads/)
  Step 31/80 : COPY scripts/codex-acp-wrapper.sh /usr/local/bin/nemoclaw-codex-acp
  Step 31/80 completed in 0.0s (COPY scripts/codex-acp-wrapper.sh /usr/local/bin/nemoclaw-codex-acp)
  Step 32/80 : COPY scripts/generate-openclaw-config.mts /usr/local/lib/nemoclaw/generate-openclaw-config.mts
  Step 32/80 completed in 0.0s (COPY scripts/generate-openclaw-config.mts /usr/local/lib/nemoclaw/generate-opencl...
  Step 33/80 : COPY scripts/openclaw-build-messaging-plugins.py /usr/local/lib/nemoclaw/openclaw-build-messaging-...
  Step 33/80 completed in 0.0s (COPY scripts/openclaw-build-messaging-plugins.py /usr/local/lib/nemoclaw/openclaw...
  Step 34/80 : COPY scripts/seed-wechat-accounts.py /usr/local/lib/nemoclaw/seed-wechat-accounts.py
  Step 34/80 completed in 0.0s (COPY scripts/seed-wechat-accounts.py /usr/local/lib/nemoclaw/seed-wechat-accounts...
  Step 35/80 : COPY nemoclaw-blueprint/openclaw-plugins/ /usr/local/share/nemoclaw/openclaw-plugins/
  Step 35/80 completed in 0.0s (COPY nemoclaw-blueprint/openclaw-plugins/ /usr/local/share/nemoclaw/openclaw-plug...
  Step 36/80 : RUN chmod 755 /usr/local/bin/nemoclaw-start /usr/local/bin/nemoclaw-codex-acp         /usr/local/l...
  Step 36/80 completed in 0.0s (RUN chmod 755 /usr/local/bin/nemoclaw-start /usr/local/bin/nemoclaw-codex-acp /us...
  Step 37/80 : ARG NEMOCLAW_MODEL=gpt-oss:20b
  Step 37/80 completed in 0.0s (ARG NEMOCLAW_MODEL=gpt-oss:20b)
  Step 38/80 : ARG NEMOCLAW_PROVIDER_KEY=inference
  Step 38/80 completed in 0.0s (ARG NEMOCLAW_PROVIDER_KEY=inference)
  Step 39/80 : ARG NEMOCLAW_PRIMARY_MODEL_REF=inference/gpt-oss:20b
  Step 39/80 completed in 0.0s (ARG NEMOCLAW_PRIMARY_MODEL_REF=inference/gpt-oss:20b)
  Step 40/80 : ARG CHAT_UI_URL=http://127.0.0.1:18789
  Step 40/80 completed in 0.0s (ARG CHAT_UI_URL=http://127.0.0.1:18789)
  Step 41/80 : ARG NEMOCLAW_INFERENCE_BASE_URL=https://inference.local/v1
  Step 41/80 completed in 0.0s (ARG NEMOCLAW_INFERENCE_BASE_URL=https://inference.local/v1)
  Step 42/80 : ARG NEMOCLAW_INFERENCE_API=openai-completions
  Step 42/80 completed in 0.0s (ARG NEMOCLAW_INFERENCE_API=openai-completions)
  Step 43/80 : ARG NEMOCLAW_CONTEXT_WINDOW=4096
  Step 43/80 completed in 0.0s (ARG NEMOCLAW_CONTEXT_WINDOW=4096)
  Step 44/80 : ARG NEMOCLAW_MAX_TOKENS=4096
  Step 44/80 completed in 0.0s (ARG NEMOCLAW_MAX_TOKENS=4096)
  Step 45/80 : ARG NEMOCLAW_REASONING=false
  Step 45/80 completed in 0.0s (ARG NEMOCLAW_REASONING=false)
  Step 46/80 : ARG NEMOCLAW_INFERENCE_INPUTS=text
  Step 46/80 completed in 0.0s (ARG NEMOCLAW_INFERENCE_INPUTS=text)
  Step 47/80 : ARG NEMOCLAW_AGENT_TIMEOUT=600
  Step 47/80 completed in 0.0s (ARG NEMOCLAW_AGENT_TIMEOUT=600)
  Step 48/80 : ARG NEMOCLAW_AGENT_HEARTBEAT_EVERY=
  Step 48/80 completed in 0.0s (ARG NEMOCLAW_AGENT_HEARTBEAT_EVERY=)
  Step 49/80 : ARG NEMOCLAW_INFERENCE_COMPAT_B64=e30=
  Step 49/80 completed in 0.0s (ARG NEMOCLAW_INFERENCE_COMPAT_B64=e30=)
  Step 50/80 : ARG NEMOCLAW_MESSAGING_CHANNELS_B64=W10=
  Step 50/80 completed in 0.0s (ARG NEMOCLAW_MESSAGING_CHANNELS_B64=W10=)
  Step 51/80 : ARG NEMOCLAW_MESSAGING_ALLOWED_IDS_B64=e30=
  Step 51/80 completed in 0.0s (ARG NEMOCLAW_MESSAGING_ALLOWED_IDS_B64=e30=)
  Step 52/80 : ARG NEMOCLAW_DISCORD_GUILDS_B64=e30=
  Step 52/80 completed in 0.0s (ARG NEMOCLAW_DISCORD_GUILDS_B64=e30=)
  Step 53/80 : ARG NEMOCLAW_TELEGRAM_CONFIG_B64=e30=
  Step 53/80 completed in 0.0s (ARG NEMOCLAW_TELEGRAM_CONFIG_B64=e30=)
  Step 54/80 : ARG NEMOCLAW_WECHAT_CONFIG_B64=e30=
  Step 54/80 completed in 0.0s (ARG NEMOCLAW_WECHAT_CONFIG_B64=e30=)
  Step 55/80 : ARG NEMOCLAW_SLACK_CONFIG_B64=e30=
  Step 55/80 completed in 0.0s (ARG NEMOCLAW_SLACK_CONFIG_B64=e30=)
  Step 56/80 : ARG NEMOCLAW_DISABLE_DEVICE_AUTH=1
  Step 56/80 completed in 0.0s (ARG NEMOCLAW_DISABLE_DEVICE_AUTH=1)
  Step 57/80 : ARG NEMOCLAW_BUILD_ID=1780491816122
  Step 57/80 completed in 0.1s (ARG NEMOCLAW_BUILD_ID=1780491816122)
  Step 58/80 : ARG NEMOCLAW_DARWIN_VM_COMPAT=0
  Step 58/80 completed in 0.1s (ARG NEMOCLAW_DARWIN_VM_COMPAT=0)
  Step 59/80 : ARG NEMOCLAW_PROXY_HOST=10.200.0.1
  Step 59/80 completed in 0.1s (ARG NEMOCLAW_PROXY_HOST=10.200.0.1)
  Step 60/80 : ARG NEMOCLAW_PROXY_PORT=3128
  Step 60/80 completed in 0.1s (ARG NEMOCLAW_PROXY_PORT=3128)
  Step 61/80 : ARG NEMOCLAW_WEB_SEARCH_ENABLED=0
  Step 61/80 completed in 0.1s (ARG NEMOCLAW_WEB_SEARCH_ENABLED=0)
  Step 62/80 : ENV NEMOCLAW_MODEL=${NEMOCLAW_MODEL}     NEMOCLAW_PROVIDER_KEY=${NEMOCLAW_PROVIDER_KEY}     NEMOCL...
  Step 62/80 completed in 0.1s (ENV NEMOCLAW_MODEL=${NEMOCLAW_MODEL} NEMOCLAW_PROVIDER_KEY=${NEMOCLAW_PROVIDER_KE...
  Step 63/80 : WORKDIR /sandbox
  Step 63/80 completed in 0.1s (WORKDIR /sandbox)
  Step 64/80 : USER sandbox
  Step 64/80 completed in 0.1s (USER sandbox)
  Step 65/80 : RUN NEMOCLAW_OPENCLAW_MANAGED_PROXY=0 node --experimental-strip-types /usr/local/lib/nemoclaw/gene...
  Step 65/80 completed in 0.5s (RUN NEMOCLAW_OPENCLAW_MANAGED_PROXY=0 node --experimental-strip-types /usr/local/...
  Step 66/80 : RUN python3 /usr/local/lib/nemoclaw/openclaw-build-messaging-plugins.py
  Still building sandbox image... (20s elapsed)
  Step 66/80 completed in 23.3s (RUN python3 /usr/local/lib/nemoclaw/openclaw-build-messaging-plugins.py)
  Step 67/80 : ENV NPM_CONFIG_OFFLINE=true     NPM_CONFIG_AUDIT=false     NPM_CONFIG_FUND=false
  Step 67/80 completed in 0.1s (ENV NPM_CONFIG_OFFLINE=true NPM_CONFIG_AUDIT=false NPM_CONFIG_FUND=false)
  Step 68/80 : RUN openclaw plugins install /opt/nemoclaw     && openclaw plugins enable nemoclaw     && openclaw...
  Step 68/80 completed in 6.0s (RUN openclaw plugins install /opt/nemoclaw && openclaw plugins enable nemoclaw &&...
  Step 69/80 : RUN python3 -c "import json, os; path = os.path.expanduser('~/.openclaw/openclaw.json'); cfg = jso...
  Step 69/80 completed in 0.4s (RUN python3 -c "import json, os; path = os.path.expanduser('~/.openclaw/openclaw....
  Step 70/80 : USER root
  Step 70/80 completed in 0.1s (USER root)
  Step 71/80 : RUN set -eu;     config_dir=/sandbox/.openclaw;     data_dir=/sandbox/.openclaw-data;     legacy_l...
  Step 71/80 completed in 8.4s (RUN set -eu; config_dir=/sandbox/.openclaw; data_dir=/sandbox/.openclaw-data; leg...
  Step 72/80 : RUN if id gateway >/dev/null 2>&1 && id sandbox >/dev/null 2>&1; then         if ! id -nG gateway ...
  Step 72/80 completed in 0.4s (RUN if id gateway >/dev/null 2>&1 && id sandbox >/dev/null 2>&1; then if ! id -nG...
  Step 73/80 : RUN set -eu;     if [ -e /tmp/nemoclaw-legacy-openclaw-layout ]; then         chown -R sandbox:san...
  Step 73/80 completed in 0.4s (RUN set -eu; if [ -e /tmp/nemoclaw-legacy-openclaw-layout ]; then chown -R sandbo...
  Step 74/80 : RUN if ! grep -q "/tmp/nemoclaw-proxy-env.sh" /etc/profile.d/nemoclaw-proxy.sh 2>/dev/null; then  ...
  Step 74/80 completed in 0.4s (RUN if ! grep -q "/tmp/nemoclaw-proxy-env.sh" /etc/profile.d/nemoclaw-proxy.sh 2>...
  Step 75/80 : RUN sha256sum /sandbox/.openclaw/openclaw.json > /sandbox/.openclaw/.config-hash     && chmod 660 ...
  Step 75/80 completed in 0.4s (RUN sha256sum /sandbox/.openclaw/openclaw.json > /sandbox/.openclaw/.config-hash ...
  Step 76/80 : RUN chown root:root /sandbox/.nemoclaw     && chmod 1755 /sandbox/.nemoclaw     && chown -R root:r...
  Step 76/80 completed in 0.5s (RUN chown root:root /sandbox/.nemoclaw && chmod 1755 /sandbox/.nemoclaw && chown ...
  Step 77/80 : RUN if [ "$NEMOCLAW_DARWIN_VM_COMPAT" = "1" ]; then         chmod -R a+rwX /sandbox/.openclaw;    ...
  Step 77/80 completed in 0.4s (RUN if [ "$NEMOCLAW_DARWIN_VM_COMPAT" = "1" ]; then chmod -R a+rwX /sandbox/.open...
  Step 78/80 : HEALTHCHECK --interval=30s --timeout=5s --start-period=45s --retries=3     CMD port="${NEMOCLAW_DA...
  Step 78/80 completed in 0.1s (HEALTHCHECK --interval=30s --timeout=5s --start-period=45s --retries=3 CMD port="...
  Step 79/80 : ENTRYPOINT ["/usr/local/bin/nemoclaw-start"]
  Step 79/80 completed in 0.1s (ENTRYPOINT ["/usr/local/bin/nemoclaw-start"])
  Step 80/80 : CMD ["/bin/bash"]
  Step 80/80 completed in 0.1s (CMD ["/bin/bash"])
  Sandbox image build completed in 42.1s
  Creating sandbox in gateway...
  Built image openshell/sandbox-from:1780491816
  Waiting for sandbox to become ready...
  Sandbox reported Ready before create stream exited; continuing.
  Recreating OpenShell Docker sandbox container with NVIDIA GPU access...
  ✓ Docker GPU mode selected: --gpus all
  Waiting for sandbox to become ready...
  Waiting for NemoClaw dashboard to become ready...
  Dashboard taking longer than expected to start. Continuing...

  Skipping GPU proof: sandbox 'my-assistant' is in Error phase.
  Patched GPU container exited with code 1 (--gpus all).
    sandbox_phase=Error
    sandbox_list_row=my-assistant  2026-06-03 13:04:18  Error
    patched_container_status=restarting
    patched_container_exit_code=1
    patched_container_health=unhealthy
    patched_container_finished_at=2026-06-03T13:04:56.055879635Z
    patched_create_option=--gpus all
    proof_error=Sandbox 'my-assistant' entered Error phase after readiness; GPU proof skipped.
  Diagnostics saved: /home/masaki/.nemoclaw/onboard-failures/2026-06-03T13-05-02-503Z-my-assistant-docker-gpu-patch
  The failed sandbox/container has been left in place for inspection.
  Manual cleanup:
    openshell sandbox delete "my-assistant"

Environment

  • CPU: Intel Core-i9 12900KS
  • memory: 96 GB
  • storage: SATA SSD 500 GB (150 GB free)
  • GPU: NVIDIA Geforce RTX 4090 * 1
  • OS: Ubuntu 22.04 LTS
  • NVIDIA driver: v565.77
  • Python: v3.10.12
  • Ollama: v0.20.4
  • LLM: GPT-OSS:20B
  • docker engine: v27.3.1

    Usable without sudo

  • NVIDIA Container Toolkit: v1.18.1
  • Node.js: v22.22.3
  • npm: v10.9.8

Debug Output

Logs

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Metadata

Metadata

Assignees

Labels

area: sandboxOpenShell sandbox lifecycle, runtime, config, or recovery

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions