Description
[Summary]
nemoclaw onboard preflight check [1/8] incorrectly shows "✓ Docker is running" when the Colima Docker daemon is stopped. The real failure only surfaces at [2/8]
gateway startup with a socket-not-found error.
[Environment]
Device: MacBook Pro (Apple M4)
OS: macOS (Darwin 25.1.0, arm64)
Architecture: arm64
Node.js: v23.10.0
npm: 11.3.0
Docker: Colima (Docker version 27.4.0)
OpenShell CLI: openshell 0.0.32
NemoClaw: v0.0.23
OpenClaw: 2026.4.2 (d74a122)
[Steps to Reproduce]
- Run: colima stop
- Verify Docker is unreachable: docker ps
Expected output: "Cannot connect to the Docker daemon at unix:///var/run/docker.sock"
- Run: nemoclaw onboard
- Observe [1/8] Preflight checks output
[Expected Behavior]
Preflight detects that the Docker daemon is not reachable and reports a failure, e.g.:
✗ Docker is not running — start Colima with: colima start
Onboard stops at [1/8] with a clear actionable message. It does not proceed to [2/8].
[Actual Behavior]
[1/8] Preflight checks reports:
✓ Docker is running
✓ Container runtime: docker-desktop
Preflight passes. Onboard proceeds to [2/8] and fails:
Error: Failed to create Docker client.
Socket not found: /var/run/docker.sock
Waiting for gateway health... (hangs indefinitely)
[Logs]
No sandbox logs applicable — failure is at onboard preflight stage.
Host terminal output captured above.
[Notes]
preflight.js checks Docker by running:
docker info --format '{{json .}}' 2>/dev/null
When the daemon is stopped, this command still outputs non-empty JSON ({"ID":"","Containers":0,...}) because the Docker CLI formats an empty client-side struct without contacting the daemon. The non-empty string causes dockerRunning to be set true.
Fix: check exit code of docker info (no --format) instead of output content, since it returns non-zero when daemon is unreachable.
Bug Details
| Field |
Value |
| Priority |
Unprioritized |
| Action |
Dev - Open - To fix |
| Disposition |
Open issue |
| Module |
Machine Learning - NemoClaw |
| Keyword |
NemoClaw, NEMOCLAW_GH_SYNC_APPROVAL, NemoClaw_Install |
[NVB#6107561]
Description
[Summary]
nemoclaw onboard preflight check [1/8] incorrectly shows "✓ Docker is running" when the Colima Docker daemon is stopped. The real failure only surfaces at [2/8]
gateway startup with a socket-not-found error.
[Environment]
Device: MacBook Pro (Apple M4)
OS: macOS (Darwin 25.1.0, arm64)
Architecture: arm64
Node.js: v23.10.0
npm: 11.3.0
Docker: Colima (Docker version 27.4.0)
OpenShell CLI: openshell 0.0.32
NemoClaw: v0.0.23
OpenClaw: 2026.4.2 (d74a122)
[Steps to Reproduce]
Expected output: "Cannot connect to the Docker daemon at unix:///var/run/docker.sock"
[Expected Behavior]
Preflight detects that the Docker daemon is not reachable and reports a failure, e.g.:
✗ Docker is not running — start Colima with: colima start
Onboard stops at [1/8] with a clear actionable message. It does not proceed to [2/8].
[Actual Behavior]
[1/8] Preflight checks reports: ✓ Docker is running ✓ Container runtime: docker-desktop Preflight passes. Onboard proceeds to [2/8] and fails: Error: Failed to create Docker client. Socket not found: /var/run/docker.sock Waiting for gateway health... (hangs indefinitely)[Logs]
No sandbox logs applicable — failure is at onboard preflight stage.
Host terminal output captured above.
[Notes]
preflight.js checks Docker by running:
docker info --format '{{json .}}' 2>/dev/null
When the daemon is stopped, this command still outputs non-empty JSON ({"ID":"","Containers":0,...}) because the Docker CLI formats an empty client-side struct without contacting the daemon. The non-empty string causes dockerRunning to be set true.
Fix: check exit code of docker info (no --format) instead of output content, since it returns non-zero when daemon is unreachable.
Bug Details
[NVB#6107561]