Fast mode fails when running as different macOS user (sandbox)

Resolved 💬 3 comments Opened Feb 24, 2026 by fad1 Closed Feb 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

Fast mode fails with "not yet available via API" error when Claude Code is run as a different macOS user (sandboxed via sandvault), despite using the same Claude Max subscription and valid oauth credentials.

The same account, same binary, same install method works fine on the host user — including over SSH and with --dangerously-skip-permissions.

What Should Happen?

Fast mode should work for any macOS user that has a valid Max subscription oauth token, regardless of which system user is running the binary.

Error Messages/Logs

API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Fast mode is currently available in research preview in Claude Code. It is not yet available via API."}}

Steps to Reproduce

  1. macOS with two users: fahd (host) and sandvault-fahd (sandbox user created by sandvault)
  2. Install Claude Code natively on both users: curl -fsSL https://claude.ai/install.sh | sh
  3. Authenticate both users with the same Claude Max account via claude (oauth login)
  4. On host user (fahd): /fast → works
  5. On sandbox user (sandvault-fahd): /fast → fails with above error

What we tried and ruled out

| Scenario | Fast mode |
|---|---|
| Host user, direct terminal | Works |
| Host user, over SSH | Works |
| Host user, with --dangerously-skip-permissions | Works |
| Sandbox user, via wrapper | Fails |
| Sandbox user, running ~/.local/bin/claude directly | Fails |
| Sandbox user, after nuking all state + fresh /login | Worked for one message, then failed |

  • Not the install method — both native
  • Not --dangerously-skip-permissions — works with it on host user
  • Not SSH — works over SSH on host user
  • Not the oauth token — keychain has valid subscriptionType: "max", rateLimitTier: "default_claude_max_5x"
  • Not feature flagstengu_fgts: false on both users, fast mode works on host

Key environment differences on sandbox user

  • USER=sandvault-fahd but LOGNAME=fahd (SSH session)
  • Custom TMPDIR (isolated temp directory)
  • Different macOS user account than the original subscriber

Interesting behavior

After completely nuking ~/.claude.json, ~/.claude/, and keychain credentials on the sandbox user, then re-authenticating fresh, fast mode worked for exactly one message and then failed on the next request with the same error. This suggests a server-side check that kicks in after initial auth.

Claude Code Version

2.1.52 (Claude Code)

Claude Model

Opus 4.6

Platform

macOS

Operating System

macOS 15 (Darwin 24.6.0)

Terminal/Shell

zsh (over SSH)

Is this a regression?

I don't know

Additional Information

Sandvault context: https://github.com/webcoyote/sandvault/issues/56

View original on GitHub ↗

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