Skip to content

v0.0.29 Dockerfile Step 17 patches fail against bundled OpenClaw 2026.4.24 #2689

@camerono

Description

@camerono

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

  1. 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
    
  2. 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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: packagingPackages, images, registries, installers, or distributionintegration: openclawOpenClaw integration behaviorplatform: containerAffects Docker, containerd, Podman, or imagesplatform: dgx-sparkAffects DGX Spark hardware or workflows

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions