[BUG] MCP tool call: null inside an object argument has no effect on the server
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [ ] I am using the latest version of Claude Code (2.1.286; 2.1.287 is current)
What's Wrong?
A null value inside an object argument of an MCP tool call has no effect on the server. The remote YouTrack MCP server's update_issue tool documents null as the way to clear a single-value field. The call returns success with nothing updated, and the field keeps its value.
The Claude Code session transcript shows the null in the tool input. We could not see the request as sent to the server, so we cannot tell whether Claude Code drops the null (or the key) before sending, or the server ignores it. The server side is being reported to JetBrains separately.
What Should Happen?
Claude Code sends {"customFields": {"Subsystem": null}} to the server unchanged, and the field is cleared.
Error Messages/Logs
No error. Tool result: {"updatedFields":[],"failedToUpdateFields":[]}
The MCP log (~/.cache/claude-cli-nodejs/<project>/mcp-logs-youtrack/*.jsonl) records only errors and debug lines, not request bodies, so it does not show what was sent.
Steps to Reproduce
- Add YouTrack Cloud's remote MCP server (
https://<instance>.youtrack.cloud/mcp, type http, OAuth). - Call
update_issuewith{"issueId": "<id>", "customFields": {"Subsystem": "Build"}}. Result:updatedFields: ["Subsystem"];get_issueshows Subsystem "Build". - Call
update_issuewith{"issueId": "<id>", "customFields": {"Subsystem": null}}. Result:updatedFields: [], no error. get_issue: Subsystem is still "Build" andupdatedAtis unchanged.
{"Assignee": null} behaves the same way.
Claude Model
Opus
Is this a regression?
I don't know
Claude Code Version
2.1.286 (Claude Code)
Platform
Other: Claude desktop app, Code tab
Operating System
Ubuntu/Debian Linux (Ubuntu 24.04.4 LTS on WSL2)
Terminal/Shell
Claude desktop app, bash
Additional Information
YouTrack Cloud 2026.2, build 19197. Setting non-null values through the same tool works.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗