-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[macOS] SSH handshake verification fails after Docker container restart — sandbox requires destroy/recreate #768
Description
Description
Environment: macOS Apple Silicon (Mac Mini), Docker Desktop 29.2.1, OpenShell 0.0.13, NemoClaw 0.1.0, OpenClaw 2026.3.11
What happens: After any Mac reboot or docker restart openshell-cluster-nemoclaw, the sandbox shows Phase: Ready but all SSH connections fail with SSH connection: handshake verification failed in a loop. nemoclaw connect returns exit 255. The Telegram bridge reports "Agent exited with code 255" or "code null."
Logs show: Gateway repeatedly connects TCP, sends NSSH1 handshake, receives response, but sandbox rejects with "handshake verification failed" — every 2 minutes indefinitely.
Only workaround: nemoclaw destroy --yes followed by full reinstall via curl -fsSL https://nvidia.com/nemoclaw.sh | bash. No lesser fix works — the SSH keys appear to get out of sync between gateway and sandbox when the container restarts.
Impact: Makes NemoClaw unusable as an always-on agent on macOS since any reboot requires a full 10-minute reinstall cycle.
Related: #260 (macOS tracking), #311 (gateway restart after reboot)
Reproduction Steps
Steps to reproduce:
Install NemoClaw on macOS Apple Silicon via curl -fsSL https://nvidia.com/nemoclaw.sh | bash
Complete onboard (NVIDIA Cloud API, any model, any sandbox name)
Verify sandbox works: nemoclaw connect → success
Reboot the Mac (or run docker restart openshell-cluster-nemoclaw)
Wait for Docker and container to fully start (docker ps shows healthy)
Run nemoclaw connect → fails with exit 255
Run nemoclaw logs --follow → shows SSH connection: handshake verification failed repeating
Expected: Sandbox reconnects after container restart.
Actual: SSH handshake permanently broken. Only destroy --yes + full reinstall resolves it.
Environment
Environment:
macOS 26.3.1
Mac Mini, Apple Silicon
Docker Desktop 29.2.1
OpenShell 0.0.13
NemoClaw 0.1.0
OpenClaw 2026.3.11 (29dc654)
Node.js v22.22.1
npm 10.9.4
Homebrew 5.1.0
Debug Output
Logs
Checklist
- I confirmed this bug is reproducible
- I searched existing issues and this is not a duplicate