You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(sandbox): supervisor hardcodes /bin/bash and fails to start on images without bash (e.g. Alpine) #3146
As an OpenShell user running a sandbox from a minimal base image (e.g. Alpine), I want the sandbox to start using a shell the image actually provides, so that sandbox creation doesn't fail on images that don't ship bash.
Problem Statement
The supervisor invokes /bin/bash for the default sandbox session (/bin/bash -l) and for the interactive SSH shell. On an image that doesn't provide bash — a stock Alpine ships only /bin/sh (BusyBox ash) — the entrypoint spawn fails and the pod crash-loops. The surfaced error is an opaque failed to spawn sandbox entrypoint process: No such file or directory (os error 2) that never names the missing binary.
Impact / Why This Matters
Users cannot run a sandbox from a stock Alpine (or any bash-less) image. The failure is a bare ENOENT with no indication that bash is the missing dependency, so it is very hard to diagnose (it looks like a musl/loader or workdir problem — it is neither). This blocks defaulting to Alpine (#3116) and BYOC on minimal bases.
Acceptance Criteria
A sandbox created from a stock Alpine image with no explicit command starts successfully.
The default session and interactive SSH shell work on an image that provides only /bin/sh.
When the target shell is absent, the error names the missing shell instead of a bare ENOENT.
Existing bash-based images continue to work unchanged.
Reproduction Steps
Deploy a gateway with the Kubernetes compute driver.
Activity
fix(sandbox): drop $SHELL preference in shell detection
fix(sandbox): address review — PTY shell, command provenance, portabl…
krishicks commentedon Sep 3, 2026
Accepting based on it's a requirement for #3116
fix(sandbox): resolve the default login shell in the supervisor (empt…
fix(sandbox): detect an available login shell instead of hardcoding /…