[BUG] OAuth login fails on Raspberry Pi (linux-arm64): "Invalid OAuth Request - Unknown scope: u"
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
What's Wrong?
When attempting to log in via claude (interactive OAuth flow) over SSH on a Raspberry Pi 4, the browser shows:
Invalid OAuth Request
Unknown scope: u
The scope parameter appears heavily truncated, down to a single character "u". This happens whether I use the manual copy or the built-in c (copy to clipboard) shortcut, so it is not a terminal line-wrapping / manual-selection issue on my end.
This matches the pattern reported in #34308, #57246, and #38749, but with a more extreme truncation (single character instead of a partial word).
Environment
- Claude Code version: 2.1.201 (native install, confirmed latest via
claude doctor) - Platform: linux-arm64
- Hardware: Raspberry Pi 4 Model B Rev 1.5
- OS: Raspberry Pi OS Lite (64-bit), Debian Trixie, kernel 6.18.34+rpt-rpi-v8
- Install method: native installer (
curl -fsSL https://claude.ai/install.sh | bash) - Connection: SSH session from macOS client
- Account type: Claude Pro subscription
Steps to Reproduce
- Install Claude Code natively on a Raspberry Pi 4 running Raspberry Pi OS Lite (64-bit)
- Connect via SSH from a separate machine (no local browser on the Pi)
- Run
claude - At the login prompt, press
cto copy the OAuth URL to clipboard (clipboard forwarding via OSC52 works correctly) - Paste the URL into a browser on the local (client) machine
- Observe the error page
Expected Behavior
The OAuth authorization page should load normally with the correct scope parameters, allowing login to complete (either via automatic redirect or a manual code to paste back into the terminal, per the documented headless flow).
Actual Behavior
Browser shows "Invalid OAuth Request - Unknown scope: u" and the flow cannot be completed.
Additional Context
claude doctorreports no other issues (Diagnostics ✓, Updates ✓)- This blocks any Pro/Max subscription login on this environment; no workaround via
/feedbackis possible since the CLI never reaches an authenticated, interactive state - Also tried
claude setup-tokenas an alternative auth path: identical error ("Unknown scope: u"). This rules out a single-code-path issue; the scope parameter appears malformed regardless of which login command generates the OAuth URL. - Also tried the Console/API login option: identical failure pattern, but with a different truncation point ("Unknown scope: user:sessions:claude_c" instead of "u" from the subscription OAuth attempt). The scope truncation is inconsistent across attempts, which points to a non-deterministic bug in scope construction rather than a fixed client-side or network-level cause.
What Should Happen?
The OAuth authorization page should load normally with the correct scope parameters, allowing login to complete (either via automatic redirect or a manual code to paste back into the terminal, per the documented headless flow).
Error Messages/Logs
Invalid OAuth Request
Unknown scope: u
Steps to Reproduce
- Install Claude Code natively on a Raspberry Pi 4 running Raspberry Pi OS Lite (64-bit)
- Connect via SSH from a separate machine (no local browser on the Pi)
- Run
claude - At the login prompt, press
cto copy the OAuth URL to clipboard (clipboard forwarding via OSC52 works correctly) - Paste the URL into a browser on the local (client) machine
- Observe the error page
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.201
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_