[BUG] VS Code Extension OAuth broken on Linux - malformed redirect URI + subscription 401
Resolved 💬 3 comments Opened Mar 15, 2026 by NickNak86 Closed Mar 19, 2026
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?
The VS Code extension OAuth flow fails on Linux Mint. Web authorization reports success, but every subsequent API call returns 401 Invalid bearer token.
What Should Happen?
Expected: Authentication succeeds and extension connects to Pro subscription.
Error Messages/Logs
Key log evidence:
[error] Failed to fetch subscription: AxiosError: Request failed with status code 401
[info] Saving OAuth tokens to secure storage
[info] Login successful
[DEBUG] [clientData] skipped: not OAuth subscriber or missing profile scope
[ERROR] API error (attempt 1/11): 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid bearer token"}}
Root cause observed: The OAuth redirect URI is malformed — single slash instead of double:
Redirect URI http:/localhost:36375/callback is not supported by client
This causes the token exchange to issue a token without the required user:profile scope, so subscription verification fails with 401 immediately after every login.
Note: claude auth login in terminal works perfectly. This is purely a VS Code extension OAuth issue on Linux.
Steps to Reproduce
Install Claude Code extension on Linux Mint / Ubuntu
Open VS Code → Claude Code panel → Sign in with Claude.ai Subscription
Complete web authorization (reports success)
Observe 401 immediately on any prompt
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.76 Claude Code VS Code Extension
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗