[BUG] VS Code extension sends invalid system role in messages array
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?
When using Claude Code in VS Code, requests intermittently fail with:
API Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown variant system, expected user or assistant at line 1 column 688
It looks like the VS Code integration sends a system role inside the messages array, but the backend endpoint only accepts user or assistant.
What Should Happen?
Claude Code in VS Code should send a valid request payload that does not include invalid role values in messages, and the request should complete normally.
Error Messages/Logs
API Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown variant system, expected user or assistant at line 1 column 688
Steps to Reproduce
Open VS Code with Claude Code extension enabled.
Send any normal prompt in Claude Code chat/panel.
Observe occasional immediate failure with the error above.
Downgrade extension to an older version and retry.
Same workflow works after downgrade.
Claude Model
Other
Is this a regression?
Yes, this worked in a previous version
Last Working Version
anthropic.claude-code@2.1.153
Claude Code Version
2.1.156 (Claude Code)
Platform
Other
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
This appears to be VS Code integration specific.
CLI usage works normally in comparison.
Downgrading the VS Code Claude extension restores normal behavior.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗