NVIDIA / NVIDIA/OpenShell

Sandbox stuck in unrecoverable Error phase after supervisor session drops (SSH disconnect); stop/start refuse to act

Open
#3,308 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

state:triage-needed
Dominant language
Rust
Stars
8.7k
Forks
1.3k
Avg merge
2d 11h
Merged PRs (30d)
253

Description

Summary

When the SSH connection carrying a sandbox's supervisor session drops (e.g. client-side "Broken pipe"), the sandbox transitions to Phase: Error and there is no way to recover it short of sandbox delete + sandbox create. sandbox stop and sandbox start both refuse to act on an Error-phase sandbox, so the workspace inside /sandbox is unrecoverable.

Steps to reproduce

  1. openshell sandbox create (image/policy running openclaw-start as main command)
  2. Attach interactively over SSH and run through a long-running foreground process (e.g. an onboarding wizard)
  3. Let the SSH client disconnect mid-session (e.g. network blip → client_loop: send disconnect: Broken pipe)
  4. openshell sandbox get <name>Phase: Error
  5. openshell sandbox stop <name>Error: sandbox must be Ready to stop (current phase: Error)
  6. openshell sandbox start <name>Error: sandbox must be Stopped to start (current phase: Error)

Relevant logs

[1789391074.213] [gateway] [WARN ] supervisor session: stream error
[1789391074.213] [gateway] [INFO ] supervisor session: ended

(log capture was truncated at time of report)

Expected

Either:

  • The supervisor session should be independent of the client SSH connection that carries it (a network drop on the client side shouldn't kill the sandbox), or
  • Error phase should have a documented recovery path (e.g. sandbox stop --force / sandbox recover) that doesn't discard the workspace.

Actual

The only path out of Error phase is sandbox delete, which discards the sandbox's workspace with no export/backup step offered.

openshell version: 0.0.116

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the supervisor session handling and the sandbox phase validation behind the reported sandbox stop and sandbox start errors, using the provided gateway logs and reproduction steps. Done means a dropped SSH connection no longer destroys recoverability, or an explicit recovery path restores the sandbox without discarding /sandbox.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.