[BUG] VSCode Remote SSH: "enabledPlatforms" TypeError causes initialization failure and session issues
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?
Bug Description
Claude Code VSCode extension fails to initialize properly in Remote SSH environment with the following error in VSCode Output logs:
Failed to check enabledPlatforms: TypeError: undefined is not an object (evaluating 'd7.join')
This error causes:
- Session history not being saved/loaded
- OAuth authentication appearing to succeed but extension not recognizing it
- Dragging session to new window causes infinite loading
- Multiple zombie Claude processes accumulating
Environment
| Property | Value |
|----------|-------|
| Claude Code Version | 2.1.20 |
| VSCode Version | 1.107.1 |
| OS | RHEL 8.10 (Remote Server) |
| Kernel | 4.18.0-553.85.1.el8_10.x86_64 |
| Connection Method | VSCode Remote SSH |
| Auth Method | Claude Pro/Max OAuth |
Steps to Reproduce
- Connect to remote Linux server via VSCode Remote SSH
- Install Claude Code extension (2.1.20)
- Run
/login- OAuth flow completes in browser - Extension shows loading state, then errors or becomes unresponsive
- Check VSCode Output → Claude Code logs → see "enabledPlatforms" error
- New sessions don't persist, dragging to new window causes infinite spinner
Observations
.credentials.jsonfile IS created with valid tokens- Multiple Claude processes spawn but don't terminate when closing tabs (process leak)
- Running
claudedirectly in SSH terminal works fine - The bug appears to be in the extension's platform detection code
Expected Behavior
Extension should gracefully handle undefined enabledPlatforms and complete initialization.
Logs
VSCode Output log shows:
[DEBUG] Failed to check enabledPlatforms: TypeError: undefined is not an object (evaluating 'd7.join')
Debug log shows:
[DEBUG] [Query.streamInput] Has bidirectional needs, waiting for first result
(then hangs indefinitely)
Workaround Attempted
- Full reinstall of extension: No effect
- Clearing ~/.claude: No effect
- Setting NODE_OPTIONS="--dns-result-order=ipv4first": No effect
- Using CLI directly via SSH terminal: Works
Labels
bug
area:ide
platform:linux
area:auth
What Should Happen?
- The extension should properly handle cases where
enabledPlatformsis undefined by using defensive checks (e.g.,enabledPlatforms?.join()orArray.isArray(enabledPlatforms) ? enabledPlatforms.join() : '')
- New sessions should initialize successfully and be responsive immediately after creation
- Session history should persist and be visible when opening new Claude Code tabs
- Dragging a session to a new window should work without infinite loading
- Closing a Claude Code tab should properly terminate its associated background process (no zombie processes)
- OAuth authentication tokens stored in
.credentials.jsonshould be correctly read and used by all new sessions
Error Messages/Logs
Steps to Reproduce
- Environment Setup:
- Local machine: macOS/Windows with VSCode installed
- Remote server: RHEL 8.10 (or similar Linux)
- Claude Code extension version: 2.1.20
- VSCode version: 1.107.1
- Connect to remote Linux server via VSCode Remote SSH extension
- Install Claude Code extension (it will install on the remote server)
- Open Claude Code panel and run
/login
- Browser opens OAuth authorization page
- Click "Authorize"
- Browser shows success page
- Return to VSCode - observe the following symptoms:
- Claude Code panel shows loading spinner indefinitely
- OR panel appears but is unresponsive
- Check VSCode Output panel (View → Output → select "Claude Code"):
- You will see:
Failed to check enabledPlatforms: TypeError: undefined is not an object (evaluating 'd7.join')
- Try opening a new Claude Code session (+ button or Cmd/Ctrl+Shift+P → "Claude Code: New Session"):
- New session also hangs with loading spinner
- Try dragging the Claude Code tab to create a new window:
- New window shows infinite loading spinner
- Close Claude Code tabs and check terminal:
```bash
ps aux | grep claude | grep -v grep
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.20
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗