[BUG] VS Code extension sends invalid system role in messages array

Resolved 💬 1 comment Opened May 29, 2026 by tiantianNewer Closed Jul 1, 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?

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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗