Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
When agents.defaults.sandbox.mode is set to "off", OpenClaw still runs a Docker capability check (docker image inspect) at the start of every isolated session (cron jobs, heartbeats, sub-agents). If the Docker daemon is not running, this throws an error that propagates as a model call failure. openclaw sandbox explain confirms mode: off / sessionIsSandboxed: false with no per-agent overrides. The docs describe "off" as host execution with zero sandbox involvement — Docker should never be touched.
Steps to reproduce
- Set agents.defaults.sandbox.mode: "off" with no per-agent sandbox overrides in agents.list[]
- Stop Docker daemon (e.g. quit OrbStack / Docker Desktop)
- Trigger any cron job, heartbeat, or sub-agent session
- Check ~/.openclaw/logs/gateway.err.log
Expected behavior
sandbox.mode: "off" = zero Docker interaction. No probes, no capability checks, no connection attempts. All sessions run on host as documented.
Actual behavior
dockerImageExists() is called at session start even though resolveSandboxContext() should return null early for mode: "off". When Docker daemon is unavailable, throws:
Error: Failed to inspect sandbox image: failed to connect to the docker API
at unix:///Users/macmini/.orbstack/run/docker.sock
dial unix /Users/macmini/.orbstack/run/docker.sock: connect: no such file or directory
This propagates as a model call failure. Sessions either fail entirely or burn a fallback model slot before recovering.
OpenClaw version
2026.4.26 (be8c246)
Operating system
macOS 26.3 (arm64) — Mac mini, Apple Silicon
Install method
npm / pnpm (local install via openclaw CLI)
Model
anthropic/claude-sonnet-4-6 (primary), openai/gpt-5.5 (fallback)
Provider / routing chain
Anthropic → OpenAI fallback. Errors happen before model is reached — at session preflight.
Additional provider/model setup details
No per-agent model overrides relevant to this bug. Issue occurs regardless of which model is configured.
Logs, screenshots, and evidence
gateway.err.log (repeated for every isolated session):
2026-04-28T07:00:02.327+01:00 [diagnostic] lane task error:
lane=session:agent:main:cron:d6cf9b12-0795-4e87-972a-e3d67e777174 durationMs=2047
error="Error: Failed to inspect sandbox image: failed to connect to the docker API
at unix:///Users/macmini/.orbstack/run/docker.sock; check if the path is correct
and if the daemon is running: dial unix /Users/macmini/.orbstack/run/docker.sock:
connect: no such file or directory"
2026-04-28T08:00:02.353+01:00 [diagnostic] lane task error:
lane=session:agent:main:cron:9d2e918d-68f8-4b8d-8e43-0c064f6fc537 durationMs=2082
error="Error: Failed to inspect sandbox image: ..."
[Same error for every cron/heartbeat session across the day]
openclaw sandbox explain --json (both configured agents show identical output):
{
"sandbox": {
"mode": "off",
"scope": "agent",
"workspaceAccess": "rw",
"sessionIsSandboxed": false
}
}
Active sandbox config in openclaw.json:
{
"agents": {
"defaults": {
"sandbox": {
"mode": "off",
"workspaceAccess": "rw"
}
}
}
}
No sandbox config in agents.list[] for any agent.
Code trace (source verified against 2026.4.26 dist):
• shouldSandboxSession() in runtime-status-C_nvYxR5.js: correctly returns false for mode: "off"
• resolveSandboxSession() in sandbox-C77UjGet.js: has if (!runtime.sandboxed) return null — returns null
• resolveSandboxContext() in sandbox-C77UjGet.js: has if (!resolved) return null — should exit early
• Despite this, dockerImageExists() in docker-BhXHIHLp.js is still reached — implying a separate call path bypasses the resolveSandboxContext guard
Impact and severity
Medium-High. Any install without a running Docker daemon (standard macOS developer setup without Docker Desktop/OrbStack) gets error noise on every cron/isolated session. Some sessions fail entirely (e.g. scheduled morning briefing — 3 consecutive errors). Others succeed only after wasting a fallback model call, adding 7–10s latency. On a machine where Docker is not expected to be running, this creates a hard-to-diagnose dependency that doesn't appear in any config documentation.
Additional information
The only workaround currently is to keep OrbStack/Docker Desktop running at all times — which is unreasonable for a feature that's explicitly disabled. Switching web search from SearXNG (Docker-based) to Brave API eliminated the functional Docker dependency, but the probe still fires at the OpenClaw session level regardless.
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
When agents.defaults.sandbox.mode is set to "off", OpenClaw still runs a Docker capability check (docker image inspect) at the start of every isolated session (cron jobs, heartbeats, sub-agents). If the Docker daemon is not running, this throws an error that propagates as a model call failure. openclaw sandbox explain confirms mode: off / sessionIsSandboxed: false with no per-agent overrides. The docs describe "off" as host execution with zero sandbox involvement — Docker should never be touched.
Steps to reproduce
Expected behavior
sandbox.mode: "off" = zero Docker interaction. No probes, no capability checks, no connection attempts. All sessions run on host as documented.
Actual behavior
dockerImageExists() is called at session start even though resolveSandboxContext() should return null early for mode: "off". When Docker daemon is unavailable, throws:
Error: Failed to inspect sandbox image: failed to connect to the docker API
at unix:///Users/macmini/.orbstack/run/docker.sock
dial unix /Users/macmini/.orbstack/run/docker.sock: connect: no such file or directory
This propagates as a model call failure. Sessions either fail entirely or burn a fallback model slot before recovering.
OpenClaw version
2026.4.26 (be8c246)
Operating system
macOS 26.3 (arm64) — Mac mini, Apple Silicon
Install method
npm / pnpm (local install via openclaw CLI)
Model
anthropic/claude-sonnet-4-6 (primary), openai/gpt-5.5 (fallback)
Provider / routing chain
Anthropic → OpenAI fallback. Errors happen before model is reached — at session preflight.
Additional provider/model setup details
No per-agent model overrides relevant to this bug. Issue occurs regardless of which model is configured.
Logs, screenshots, and evidence
Impact and severity
Medium-High. Any install without a running Docker daemon (standard macOS developer setup without Docker Desktop/OrbStack) gets error noise on every cron/isolated session. Some sessions fail entirely (e.g. scheduled morning briefing — 3 consecutive errors). Others succeed only after wasting a fallback model call, adding 7–10s latency. On a machine where Docker is not expected to be running, this creates a hard-to-diagnose dependency that doesn't appear in any config documentation.
Additional information
The only workaround currently is to keep OrbStack/Docker Desktop running at all times — which is unreasonable for a feature that's explicitly disabled. Switching web search from SearXNG (Docker-based) to Brave API eliminated the functional Docker dependency, but the probe still fires at the OpenClaw session level regardless.