Description
The v0.0.29 sandbox image build (nemoclaw <container name> rebuild) fails at Dockerfile Step 17 with:
AssertionError: writeConfigFile(params.nextConfig) pattern not found
Root cause: blueprint.yaml declares min_openclaw_version: "2026.4.9", but the base image referenced by the v0.0.29 build (the GHCR sha256-pinned ghcr.io/nvidia/openshell-community/sandboxes/openclaw@sha256:b3d832b596…) actually contains OpenClaw 2026.4.24, not 2026.4.9.
Step 16's version check has the comparison MIN_VER ≤ CUR_VER → skip install, so when CUR_VER is 2026.4.24 (newer than the declared 2026.4.9 minimum), it leaves 2026.4.24 in place. Step 17 then attempts to apply the four monkey-patches via sed/python against the OpenClaw dist/*.js files. Patch 4 (replaceConfigFile EACCES bypass for sandbox plugin metadata) is shape-tied to the 2026.4.9 source and the python assert old in src triggers on 2026.4.24's refactored code path.
Step 16 build log line:
INFO: OpenClaw 2026.4.24 is current (>= 2026.4.9), no upgrade needed
This is internally inconsistent: the build proceeds through Step 17 patches as if it had the 2026.4.9 code shape, but the running OpenClaw is 2026.4.24.
The class of issue is implied by PR #2484 ("bundled openclaw bump to 2026.4.24") which includes "Patch 4 update that targets the new tryWriteSingleTopLevelIncludeMutation flow" — that PR is in flight (per its own status, 13/18 nightly E2E pass) and not in v0.0.29.
Reproduction Steps
- On a fresh ARM64 (DGX Spark / GB10) Ubuntu 24.04 host with Docker Engine 27.x and Node 22.22.2, install NemoClaw v0.0.29:
NEMOCLAW_INSTALL_TAG=v0.0.29 NEMOCLAW_NON_INTERACTIVE=1 \
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
- Onboard a sandbox with the
ollama-local provider and a non-Qwen model (we used hermes3:8b):
NEMOCLAW_PROVIDER=ollama NEMOCLAW_MODEL=hermes3:8b \
NEMOCLAW_NON_INTERACTIVE=1 nemoclaw onboard
The Docker build will reach Step 17 and fail with the AssertionError above.
Environment
- OS: Ubuntu 24.04 (Linux 6.17.0-1014-nvidia aarch64)
- Hardware: NVIDIA GB10 (DGX Spark), 96 GB unified memory
- Docker: Engine 27.x
- Node.js: v22.22.2 (from nvm)
- NemoClaw: v0.0.29
- OpenShell (cluster): 0.0.36
- OpenClaw bundled in base image: 2026.4.24 (vs.
min_openclaw_version: "2026.4.9")
blueprint.yaml digest: 9b71a3d39e22efee (or as shipped in v0.0.29)
Debug Output
Output of `nemoclaw debug --quick --sandbox rtfm` (run after applying our local Dockerfile workaround so the sandbox is operational):
debug-output-2026-04-29-1847.txt
Logs
Step 17 failure excerpt:
Step 17/56 : RUN set -eu; OC_DIST=/usr/local/lib/node_modules/openclaw/dist; ...
---> Running in 0d9ee9aae9b3
Traceback (most recent call last):
File "<string>", line 1, in <module>
AssertionError: writeConfigFile(params.nextConfig) pattern not found
Error: × Docker build stream error
╰─▶ Docker stream error: The command '/bin/bash -o pipefail -c set -eu; ...
assert old in src, 'writeConfigFile(params.nextConfig) pattern not
found'; ...' returned a non-zero code: 1
Step 16 install-skip log line that proves the version drift:
INFO: OpenClaw 2026.4.24 is current (>= 2026.4.9), no upgrade needed
Checklist
Description
The v0.0.29 sandbox image build (
nemoclaw <container name> rebuild) fails at Dockerfile Step 17 with:Root cause:
blueprint.yamldeclaresmin_openclaw_version: "2026.4.9", but the base image referenced by the v0.0.29 build (the GHCR sha256-pinnedghcr.io/nvidia/openshell-community/sandboxes/openclaw@sha256:b3d832b596…) actually contains OpenClaw 2026.4.24, not 2026.4.9.Step 16's version check has the comparison
MIN_VER ≤ CUR_VER → skip install, so when CUR_VER is 2026.4.24 (newer than the declared 2026.4.9 minimum), it leaves 2026.4.24 in place. Step 17 then attempts to apply the four monkey-patches via sed/python against the OpenClawdist/*.jsfiles. Patch 4 (replaceConfigFile EACCESbypass for sandbox plugin metadata) is shape-tied to the 2026.4.9 source and the pythonassert old in srctriggers on 2026.4.24's refactored code path.Step 16 build log line:
This is internally inconsistent: the build proceeds through Step 17 patches as if it had the 2026.4.9 code shape, but the running OpenClaw is 2026.4.24.
The class of issue is implied by PR #2484 ("bundled openclaw bump to 2026.4.24") which includes "Patch 4 update that targets the new tryWriteSingleTopLevelIncludeMutation flow" — that PR is in flight (per its own status, 13/18 nightly E2E pass) and not in v0.0.29.
Reproduction Steps
ollama-localprovider and a non-Qwen model (we usedhermes3:8b):AssertionErrorabove.Environment
min_openclaw_version: "2026.4.9")blueprint.yamldigest:9b71a3d39e22efee(or as shipped in v0.0.29)Debug Output
debug-output-2026-04-29-1847.txt
Logs
Checklist