[BUG] claude --continue aborts on Linux 2.1.120 with `sandbox required but unavailable: ${j$}` (unfilled template literal)

Resolved 💬 7 comments Opened Apr 26, 2026 by Edward-Croc Closed Apr 28, 2026

Summary

On Claude Code 2.1.120 (native Linux binary), claude --continue aborts before resuming a session with:

Error: sandbox required but unavailable: ${j$}
  sandbox.failIfUnavailable is set — refusing to start without a working sandbox.

Two issues are visible in this single error:

1. Unfilled template literal ${j$} in the error message

The placeholder for the underlying sandbox-init failure is never substituted. Users see the literal string ${j$} instead of the actual cause. Looks like the error formatter at the throw site is missing its argument (compiled lines around 9248–9249).

2. sandbox.failIfUnavailable is reported as set, but no user config has it

I verified there is no sandbox key in any of:

  • ~/.claude/settings.json
  • ~/.claude/settings.local.json
  • <project>/.claude/settings.json
  • <project>/.claude/settings.local.json
  • ~/.claude.json

Either the default for this flag flipped to true in 2.1.120, or the settings-precedence logic is reading a phantom value.

Environment

  • OS: Ubuntu, kernel 6.8.0-110-generic, x86_64
  • bwrap (bubblewrap): 0.6.1 at /usr/bin/bwrap — sandbox helper is present
  • Versions installed under ~/.local/share/claude/versions/: 2.1.118, 2.1.119, 2.1.120
  • claude --version reports 2.1.119, while CLAUDE_CODE_EXECPATH points to 2.1.120 (separate concern: launcher / version-manager mismatch)
  • 2.1.119 worked fine on the same host with the same settings

Reproduction

  1. Be on a Linux host where the 2.1.120 sandbox-init fails (cause unknown — error swallows it).
  2. Have no sandbox key in any settings file.
  3. cd into a project with a previous session.
  4. Run claude --continue.

Expected: session resumes (with a warning if sandbox is unavailable, matching 2.1.119 behaviour).
Actual: hard-fails with the message above.

Workaround

Adding to ~/.claude/settings.json:

"sandbox": { "failIfUnavailable": false }

restores the ability to --continue. Confirmed working.

Asks

  • Fix the template literal so the underlying sandbox-init failure surfaces in the error.
  • Confirm and document the intended default for sandbox.failIfUnavailable in 2.1.120's release notes — if it changed, that's a behaviour break worth calling out.
  • Investigate why sandbox init fails on a host where bwrap 0.6.1 is installed and reachable.
  • (Possibly related) clarify the claude --version vs. CLAUDE_CODE_EXECPATH mismatch between 2.1.119 and 2.1.120.

View original on GitHub ↗

This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗