Skip to content

[macOS][Sandbox] nemoclaw destroy aborts when the OpenShell gateway is down — no auto-recover, no --force bypass #6046

Description

@hulynn

Description

On macOS (Colima docker driver, nemoclaw v0.0.68 / openshell 0.0.44), nemoclaw <name> destroy aborts fatally and cannot delete the sandbox when the OpenShell gateway is not listening on 127.0.0.1:8080.

Verbose (RUST_LOG=debug) output proves every call — each provider detach and the final delete — connects to 127.0.0.1:8080 (the gateway), not to the messaging-bridge / devtunnel endpoints. When the gateway process is not running, all of them get Connection refused (os error 61). The per-provider detaches are logged as non-fatal Warnings, but the final delete call's transport error is fatal and aborts the whole destroy (Failed to destroy sandbox).

Unlike nemoclaw <name> status / doctor, which auto-start the gateway, destroy assumes the gateway is already up and does not start/recover it. Neither --force nor --yes bypasses the failure — per nemoclaw sandbox destroy --help, both only "Skip the confirmation prompt." So when the gateway is down there is no supported way to delete a sandbox.

Originally hit after shutting down a devtunnel (and Colima), which led to the assumption the messaging bridges were the unreachable target — the verbose trace disproves that: the target is always the gateway at 127.0.0.1:8080.

Workaround that worked: bring the gateway up first (run nemoclaw <name> status once Docker is running — it starts the gateway; or openshell gateway start --name nemoclaw), confirm 127.0.0.1:8080 is LISTENing, then nemoclaw <name> destroy --force succeeds and cleans up the image.

Related (already fixed, do not cover this case): NVB#6100026 (destroy noisy provider warnings — fixed the noise, not the fatal abort), NVB#6044867 (destroy did not stop telegram bridge — opposite direction).

Environment

Device:        MacBook (Apple Silicon, arm64)
OS:            macOS 26.5.1 (Darwin 25.5.0, arm64)
Architecture:  arm64
Node.js:       v23.10.0
npm:           11.3.0
Docker:        27.4.0 client / 29.2.1 server (Colima docker driver)
OpenShell CLI: 0.0.44 (docker driver)
NemoClaw:      v0.0.68
OpenClaw:      v2026.5.27

Steps to Reproduce

  1. On macOS with Colima as the Docker backend, have an existing sandbox.
  2. Ensure the OpenShell gateway is not running on 127.0.0.1:8080 (e.g. it crashed, or Docker/Colima was stopped and the gateway process exited — bringing Docker back up does not auto-restart the gateway).
  3. Run nemoclaw <name> destroy (or with --force).

Expected Result

Deleting a sandbox should never be permanently blocked by a down gateway. Either:

  • destroy ensures/recovers the gateway (as status/doctor already do) before teardown; or
  • destroy treats gateway/detach failures as best-effort and still completes local teardown + registry removal; or
  • --force actually bypasses the transport failure and force-removes the sandbox / drops the local registry entry.

Actual Result

  • Every provider detach and the final delete connect to 127.0.0.1:8080; with the gateway down all return Connection refused (os error 61).
  • Per-provider detaches are non-fatal Warnings; the final delete transport error is fatal → Failed to destroy sandbox 'lynnteams'.
  • --force / --yes only skip the confirmation prompt; they do not bypass the transport failure.

Logs

Verbose repro (RUST_LOG=debug) — note the connection target on every line is the gateway, not a bridge:

Deleting sandbox 'lynnteams'...
Warning: failed to detach provider 'lynnteams-telegram-bridge' before sandbox delete: DEBUG hyper_util::client::legacy::connect::http: connecting to 127.0.0.1:8080
Error:   × transport error ├─▶ tcp connect error ╰─▶ Connection refused (os error 61)
... (identical for discord / wechat / slack / slack-app / teams / brave-search bridges) ...
DEBUG hyper_util::client::legacy::connect::http: connecting to 127.0.0.1:8080
Error:   × transport error ╰─▶ Connection refused (os error 61)
Failed to destroy sandbox 'lynnteams'.

After bringing the gateway up (confirmed 127.0.0.1:8080 LISTEN), nemoclaw lynnteams destroy --force succeeded:

Deleting sandbox 'lynnteams'...
Untagged: openshell/sandbox-from:1782470980
Deleted: sha256:... (image layers removed)
Removed Docker image openshell/sandbox-from:1782470980
✓ Sandbox 'lynnteams' destroyed

NVB#6395783

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

NV QABugs found by the NVIDIA QA Teamarea: cliCommand line interface, flags, terminal UX, or outputarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recoveryplatform: macosAffects macOS, including Apple Silicon

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions