Error: InputValidationError: Write failed due to the following issue: The required parameter `content` is missing

Open 💬 55 comments Opened Apr 28, 2025 by BrianObilo

Not sure how to recreate this since it doesn't happen often, but when I asked Claude what lead to this happening, it said - "The error occurred because I forgot to include the "content" parameter when using the Write tool. The Write tool requires both "file_path" and "content" parameters, and I only provided the file path without the content to write to the file. I'll make sure to include both parameters when creating files. "

But also sometimes it happens that Claudecode gets stuck trying to implement something for more than 30 mins without error logs/message to the end user. Time increases but the token count does not increase. (Could be related). I will include an image to this issue if I encounter this again.

Claude code version - latest as of now (Auto update is on)
API - using my own from Anthropic account

View original on GitHub ↗

54 Comments

lio590 · 1 year ago
It's not a bug; it means you didn't provide an argument for something, so he couldn't set a directive correctly. Fix your order to resolve the issue.

MRVarden Your diagnostic is incorrect, it is a bug. This is happening very often and not because any lack of instructions, argument or whatever. On top of this, while looping doing nothing it keeps charging your account !
Je vais maintenant implémenter toutes ces modifications une par une et créer le script V7 complet.

● Write
⎿ Error: InputValidationError: Write failed due to the following issue:
The required parameter content is missing

● Pardonnez-moi pour cette erreur. Je vais créer le contenu du fichier et l'écrire.

● Write
⎿ Error: InputValidationError: Write failed due to the following issue:
The required parameter content is missing

● Je remarque une erreur avec l'utilisation de la fonction Write. Essayons à nouveau en incluant le contenu :

● Write
⎿ Error: InputValidationError: Write failed due to the following issue:
The required parameter content is missing

● Je vais procéder en créant un contenu explicite :

● Write
⎿ Error: InputValidationError: Write failed due to the following issue:
The required parameter content is missing

✶ Implementing… (1481s · ↓ 1.5k tokens · esc to interrupt)

lio590 · 1 year ago

Merci pour l'information, de mon coté a un certain momemt j'ai laissé tourner et au bout de 3/ 4 fois il a de lui meme dit "je vais essayer une autre méthode pour écrire dans le fichier" et il a utilisé un bash, grep etc. depuis quand ça arrive je le stop et je lui dit "utilise bash" et ça fonctionne. Honnètement je ne sais si c'est vraiment la root cause mais cela fonctionne pour moi. Je suis d'accord pour le md c'est une excellente idée.

github-actions[bot] · 7 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

Ka0fKa · 7 months ago

I also encountered this problem:
Error: InputValidationError: Write failed due to the following issues:
The required parameter file_path is missing
The required parameter content is missing

Ka0fKa · 7 months ago

Why are the problems that occurred in April not yet resolved and are new versions updated every day?

bearyue · 5 months ago

I’ve encountered the same issue as well. Strangely, it seems to be related to the configured API—when using services from some third-party sites, the problem occurs, but everything works normally when using the official one.

ssim2023 · 5 months ago

I've encountered this problem too, and it's amazing it hasn't been fixed yet.

dirtycomputer · 5 months ago

+1 有可能是要读写的content过长

Atlantic83 · 5 months ago

+1

cgoy2020 · 5 months ago

+1

nereus-east · 5 months ago

+1

fuzihaofzh · 5 months ago

Same problem:

Error: InputValidationError: Write failed due to the following issues:                               
     The required parameter `file_path` is missing                                                        
     The required parameter `content` is missing                                                          
  ⎿  Error: InputValidationError: Write failed due to the following issues:                               
     The required parameter `file_path` is missing                                                        
     The required parameter `content` is missing
yaobii-lab · 5 months ago

+1

Akucuki · 5 months ago

+1

xyyandxyy · 5 months ago

+1

samicodesit · 5 months ago

+1

Is this really going to go forever?

codeByJiaDong · 5 months ago

 Read 393 lines
⎿  Error: InputValidationError: Write failed due to the following issues:
The required parameter file_path is missing
The required parameter content is missing
⎿  Error: InputValidationError: Write failed due to the following issues:
The required parameter file_path is missing
The required parameter content is missing
Why is this still happening in 2026

Gong-Ping · 5 months ago

same issue, wasted lots of time & tokens

● Now I have a comprehensive understanding of the entire pipeline. Let me write the detailed plan.
⎿  Error: InputValidationError: Write failed due to the following issues:
The required parameter file_path is missing
The required parameter content is missing
An unexpected parameter raw_arguments was provided

DoubleMice · 5 months ago

oh god, it seems like an old bug, but why still not fix in 2026? maybe i need switch to another cli tool

mgr9525 · 5 months ago

+

aragogix02-hue · 5 months ago

it happened to me few times the last years but not anymore , maybe your OS version ? update fixed ?

dhananjaym182 · 4 months ago

+1

smottt · 4 months ago

+1

Pickupppp · 4 months ago

+1

StiffCoconut · 4 months ago

+1,我这边产生这个错误的原因是由于单次输出的内容过大就会频繁出发这个问题

hitdavid · 4 months ago

+1,
⎿  Error: InputValidationError: Write failed due to the following issue:
The required parameter content is missing

/doctor

Diagnostics
└ Currently running: native (2.1.63)
└ Path: /****/2.1.63
└ Invoked: /
****/2.1.63
└ Config install method: native
└ Search: OK (bundled)

Updates
└ Auto-updates: disabled (CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC set)
└ Auto-update channel: latest
└ Stable version: 2.1.50
└ Latest version: 2.1.63

MorIo24 · 4 months ago

错误日志:

● 明白了!现在开始编写详细的实施计划。
  ⎿  Error: InputValidationError: Write failed due to the following issue:
     The required parameter `content` is missing

doctor信息
Diagnostics
└ Currently running: unknown (2.1.69) └ Path: E:\node.js\node.exe └ Invoked: E:\node.js\node_global\node_modules\@anthropic-ai\claude-code\cli.js └ Config install method: global └ Search: OK (vendor)
Updates
└ Auto-updates: enabled
└ Auto-update channel: latest
└ Stable version: 2.1.58
└ Latest version: 2.1.69

相同问题,2026-3-5 仍未解决

DaBai-1925 · 4 months ago

InputValidationError: AskUserQuestion failed due to the following issues:

  • The required parameter questions is missing
  • An unexpected parameter question was provided
  • An unexpected parameter options was provided

InputValidationError: AskUserQuestion failed due to the following issue:

  • The parameter questions type is expected as array but provided as `string'

Diagnostics
└ Currently running: npm-global (2.1.69)
└ Config install method: global
└ Search: OK (vendor)
Updates
└ Auto-updates: enabled
└ Update permissions: Yes
└ Auto-update channel: latest
└ Stable version: 2.1.58
└ Latest version: 2.1.69

johnning2333 · 4 months ago

+1

iamwjun · 4 months ago

+1

awrobel-gd · 4 months ago

I had this as well. Please solve this

SongWWWWWW · 4 months ago

I had this as well. A temporary solution is that you need to tell Claude to write the file in segments, writing every 100 lines at a time. Due to a bug in Claude Code, writing too much content in one go will cause the write operation to fail.

hackeryutu · 4 months ago

+1

outmatch260 · 4 months ago

+1

outmatch260 · 4 months ago
I had this as well. A temporary solution is that you need to tell Claude to write the file in segments, writing every 100 lines at a time. Due to a bug in Claude Code, writing too much content in one go will cause the write operation to fail.

your solution is work for me, i tell claude to write every 100 line then no error. looks like claude can't write big content in one go.

awrobel-gd · 4 months ago

Im constantly getting this on sonnet-4.5, sonnet-4.6. Why would it truncate the content before calling the tool?

@bcherny please only you can save us. Agents within single agentic query retry but fail everytime. This should maybe be default behavior to chunk the writes?

coach00 · 3 months ago

glm4.5升级到glm4.7后开始出现该问题,所有工具调用都只有空参数,

<img width="688" height="123" alt="Image" src="https://github.com/user-attachments/assets/1406747e-6d1b-40f4-9fd8-01928412ed3c" />

PBDMSFT · 3 months ago

Sharing an admittedly long summary from Claude CLI from our troubleshooting session. The original problem occurred while using Claude Code extension in VS Code via litellm proxy.
--------------

Root Cause Analysis — Proxy + Non-Streaming Fallback + Token Cap

I've traced the full failure chain for this bug when using Claude Code through a LiteLLM proxy (routed to GitHub Copilot API). The core mechanism (non-streaming fallback + truncation) applies regardless of which API backend is used.

The Chain

  1. Claude Code sends stream=true (always, both CLI and VS Code)
  2. When the streaming response encounters an error — specifically RangeError("Content block not found") due to a missing content_block_start SSE event — Claude Code falls back to non-streaming (stream=false)
  3. The non-streaming request hits a lower output token cap, truncating the tool_use JSON mid-parameter
  4. The content field in the Write tool call is cut off → InputValidationError: required parameter content is missing
  5. Retry triggers the same streaming error → same fallback → same truncation → deterministic loop

Evidence: Non-Streaming Fallback in Extension Log

VS Code extension log (Claude VSCode.log):

[ERROR] Error streaming, falling back to non-streaming mode: Content block not found

This is thrown in cli.js when a content_block_delta event arrives for an index with no prior content_block_start:

case "content_block_delta": {
  let y8 = Y6[w8.index];
  if (!y8) throw RangeError("Content block not found");
}

Evidence: Response Format Fingerprinting

You can identify whether a response went through streaming or non-streaming by checking the conversation JSONL:

  • Streaming: model field = claude-sonnet-4.6 (Anthropic format), has service_tier
  • Non-streaming fallback: model field = github_copilot/Claude Sonnet 4.6 (OpenAI format), has total_tokens

In the failed conversation, all three Write failures had the non-streaming fingerprint with output_tokens=16000 and stop_reason=max_tokens.

Evidence: Non-Streaming Output Cap in Copilot /models API

The GitHub Copilot /models API returns two distinct output-token fields for Claude models in our environment:

  • max_output_tokens: 32,000–64,000 (streaming)
  • max_non_streaming_output_tokens: 16,000 (non-streaming)

This max_non_streaming_output_tokens field exists only for Anthropic/Claude models in our environment — GPT and Gemini models do not have it. Direct testing confirmed: same model, same max_tokens=20000 — non-streaming returns 16,000 (capped), streaming returns 20,000+ (not capped).

Note: The specific cap value (16,000) was observed on a GitHub Copilot Enterprise deployment. It may differ on other Copilot plans. However, the failure mechanism (streaming error → non-streaming fallback → lower cap → truncation) applies regardless of the specific cap value — any non-streaming cap lower than the streaming cap will produce this behavior.

Why This Especially Affects Proxy Users

Proxy users (LiteLLM, OpenAI-compatible endpoints) are more likely to trigger the Content block not found error because the proxy translates SSE events between formats (Anthropic to OpenAI and back), which can drop or reorder content_block_start events. This triggers the non-streaming fallback more frequently than the direct Anthropic API.

Workaround

Break large Write calls into chunks: write a ~100-line skeleton first, then expand with Edit calls (~150 lines each). Each response stays under the non-streaming cap.

Environment

  • Claude Code 2.1.85/2.1.86
  • LiteLLM 1.81.1 proxy to GitHub Copilot API (Enterprise)
  • Models tested: Sonnet 4.6, Opus 4.6-1M, Haiku 4.5
lyhisproving · 3 months ago

I also encountered this problem, and the above solution doesn't work for me because I got an error during the model invocation phase:
Error: InputValidationError: Agent failed due to the following issues:
The required parameter description is missing
The required parameter prompt is missing

I'm surprised this problem hasn't been solved yet.

awrobel-gd · 3 months ago

Some solutions I tried:

  • tell agent to use Write tool for header, then only Edit for each 100 lines => catastrophically slow and consumes tokens
  • use shell commands - this is blocked
  • use python bash command with script inside that opens file and writes - this is blocked
  • eventually the regular Write started to work sometimes, sometimes fails

Big files fail all the time in claude-agent-sdk

asjad3 · 3 months ago
## Sharing an admittedly long summary from Claude CLI from our troubleshooting session. The original problem occurred while using Claude Code extension in VS Code via litellm proxy. ## Root Cause Analysis — Proxy + Non-Streaming Fallback + Token Cap I've traced the full failure chain for this bug when using Claude Code through a LiteLLM proxy (routed to GitHub Copilot API). The core mechanism (non-streaming fallback + truncation) applies regardless of which API backend is used. ### The Chain 1. Claude Code sends stream=true (always, both CLI and VS Code) 2. When the streaming response encounters an error — specifically RangeError("Content block not found") due to a missing content_block_start SSE event — Claude Code falls back to non-streaming (stream=false) 3. The non-streaming request hits a lower output token cap, truncating the tool_use JSON mid-parameter 4. The content field in the Write tool call is cut off → InputValidationError: required parameter content is missing 5. Retry triggers the same streaming error → same fallback → same truncation → deterministic loop ### Evidence: Non-Streaming Fallback in Extension Log VS Code extension log (Claude VSCode.log): `` [ERROR] Error streaming, falling back to non-streaming mode: Content block not found ` This is thrown in cli.js when a content_block_delta event arrives for an index with no prior content_block_start: case "content_block_delta": { let y8 = Y6[w8.index]; if (!y8) throw RangeError("Content block not found"); } ### Evidence: Response Format Fingerprinting You can identify whether a response went through streaming or non-streaming by checking the conversation JSONL: * **Streaming**: model field = claude-sonnet-4.6 (Anthropic format), has service_tier * **Non-streaming fallback**: model field = github_copilot/Claude Sonnet 4.6 (OpenAI format), has total_tokens In the failed conversation, all three Write failures had the non-streaming fingerprint with output_tokens=16000 and stop_reason=max_tokens. ### Evidence: Non-Streaming Output Cap in Copilot /models API The GitHub Copilot /models API returns two distinct output-token fields for Claude models in our environment: * max_output_tokens: 32,000–64,000 (streaming) * max_non_streaming_output_tokens: **16,000** (non-streaming) This max_non_streaming_output_tokens field exists **only for Anthropic/Claude models** in our environment — GPT and Gemini models do not have it. Direct testing confirmed: same model, same max_tokens=20000 — non-streaming returns 16,000 (capped), streaming returns 20,000+ (not capped). **Note:** The specific cap value (16,000) was observed on a GitHub Copilot Enterprise deployment. It may differ on other Copilot plans. However, the failure mechanism (streaming error → non-streaming fallback → lower cap → truncation) applies regardless of the specific cap value — any non-streaming cap lower than the streaming cap will produce this behavior. ### Why This Especially Affects Proxy Users Proxy users (LiteLLM, OpenAI-compatible endpoints) are more likely to trigger the Content block not found error because the proxy translates SSE events between formats (Anthropic to OpenAI and back), which can drop or reorder content_block_start` events. This triggers the non-streaming fallback more frequently than the direct Anthropic API. ### Workaround Break large Write calls into chunks: write a ~100-line skeleton first, then expand with Edit calls (~150 lines each). Each response stays under the non-streaming cap. ### Environment Claude Code 2.1.85/2.1.86 LiteLLM 1.81.1 proxy to GitHub Copilot API (Enterprise) * Models tested: Sonnet 4.6, Opus 4.6-1M, Haiku 4.5

thank you so much, using claude API through a proxy and adding the "break into chunks" call into the claude.md generally fixes this :)

vvincenttttt · 3 months ago

when the content is too long, then cannot write

cyanodeio · 3 months ago

+1

alfiedotwtf · 2 months ago

Came here from https://github.com/anthropics/claude-code/issues/5219

I thought about fixing this myself and submitting a patch, but lol I can't find where it is (I can't see it in the write_tool call in claude)... searching for "due to the following" given the error message comes up with zero. I've tried looking elsewhere but again nothing.

If it is just simply because Claude doesn't know how to write files that are bigger than its context, it probably will be a simple fix - the only hard part is finding where that error in the code is coming from!!

alfiedotwtf · 2 months ago

Oh! Looking at the logs further down, I'm getting:

API Error: 400 {"error":{"code":400,"message":"request (30231 tokens) exceeds the available context size (30208 tokens), try increasing it", "type":"exceed_context_size_error","n_prompt_tokens":30231,"n_ctx":30208}

So I'm guessing the original error (failed to write) is a red herring - the response was too big so the model rejected the output, but Claude Code thought because there was no response it was a missing field error. If so, it would be good if the whole error stack could be returned so that there's no guessing what the original problem was.

idrozd · 2 months ago

Downgrading to 2.1.100 (randomly chosen) worked on MacOS 26.3.1

Don't forget to env "DISABLE_AUTOUPDATER": "1"

IanVand · 2 months ago

Also hitting this on the Edit tool (not just Write). Same pattern — intermittent InputValidationError about required parameters missing on edits, retry with identical params succeeds. Affects Edit, Read, Bash per #36518 (closed as dup of a Skill-specific issue; this one is the right canonical home).

Seen ~3-5x/week on Claude Code 2.1.80+ on Windows 11, claude-opus-4-7 (1M). Observed via task-forge error-collector scanning JSONL session history. Counts as one of my top-5 most frequent false-positive errors in my tooling pipeline.

JamesTeague · 1 month ago

Same encoder bug, surfacing through MCP stdio against a third-party server. Adding a smoking-gun trace in case it helps reproduce — #58086 (mine) was closed as a duplicate of #53186, which was closed as a duplicate of this. Filing here to keep the evidence on the open thread.

Symptom

Two adjacent multi-line <parameter> blocks get merged: the second parameter's content is embedded inside the first parameter's string value, with the literal boundary markup (</param-name>\n<parameter name="next">) preserved as text. The second parameter is then absent from the JSON input object sent to the MCP server, which correctly rejects it with missing field 'X'.

Only the boundary between adjacent multi-line text parameters fails. Sibling scalar parameters (memory_type, tags, link_to, etc.) extract correctly in the same call.

Smoking gun: harness-recorded tool_use.input

From ~/.claude/projects/<project>/<session>.jsonl, captured for a failing call to an MCP tool whose schema requires both core (string) and expansion (string):

"input": {
  "core": "Session 97: Programming language choices brainstorm → ... lunch still 2025-09-22.</core>\n<parameter name=\"expansion\">## Session 97 — Programming language choices ... [entire expansion content embedded here] ... not pulled this session",
  "memory_type": "domain",
  "tags": ["session-97", "session-summary", "career", "stack-posture"],
  "project": "career",
  "thread": "career",
  "link_to": "6f5ca3e0",
  "link_type": "next"
}

Observe:

  1. No expansion key in input.
  2. The literal </core>\n<parameter name=\"expansion\"> appears as text inside the core string value, immediately followed by what should have been the separate expansion parameter's content.
  3. All sibling scalar parameters extracted cleanly.

Server returns MCP error -32602: failed to deserialize parameters: missing field 'expansion' — accurate, given the malformed payload.

Correlated conditions (observed across ~5 sessions over ~2 weeks)

  • Two adjacent multi-line text parameters (first ~500–1000 chars, second ~1–4 KB)
  • Second parameter contains markdown structure (headers, bullets)
  • Stripping markdown from the second parameter sometimes flips outcome to success on retry
  • Same tool, same session, same harness path produces fail / succeed / fail in three consecutive calls

Repro sketch

Define an MCP tool with two required string params (a, b). Call with a ≈ 800 chars and b ≈ 3 KB multi-section markdown with ##/### headers and bullets, plus 3+ scalar siblings. Inspect the harness-recorded tool_use.input in the session .jsonl. Expect b merged into a with the boundary tags preserved as literal text.

Environment

  • Claude Code CLI (macOS, current as of 2026-05-20)
  • MCP server: Rust, rmcp 1.6, strict schema validation
  • Primarily observed against claude-opus-4-7 (1M context)
  • Still reproducing as of 2026-05-20
skye0402 · 1 month ago

Same here:

Error: InputValidationError: Edit failed due to the following issues:
     The required parameter `file_path` is missing
     The required parameter `old_string` is missing
     The required parameter `new_string` is missing

Happens with very latest Claude Code 2.1.161 (Claude Code) and Opus 4.7. I feel it didn't happen with 4.6. Don't have 4.8 so I can't check.
Telling CC to write the file in chunks works. I have this problem only with large files like planning files and new source code files.

awrobel-gd · 1 month ago

Still happens. I need every prompt to have instruction to write files or edit them in 150 line chunks and merge afterwards into one. Editing in sequence by 150 lines each is extremely slow.

Changing the max token count for tool call didnt help at all

masterabcd · 1 month ago

Very impactful on the experience and unsolvable

MeysamBahadori · 29 days ago

I have been having the same error for a long time.

I add the following text to the prompt

To avoid getting following Error
InputValidationError: Edit failed due to the following issues:
The required parameter file_path is missing
The required parameter old_string is missing
The required parameter new_string is missing
For large files, split content across multiple Write calls or prefer Edit for small changes.

starSumi · 24 days ago

Additional control experiment: print/no-tools mode recovers the exact content path

I hit a repeatable variant of this failure on Claude Code 2.1.183, Windows 11, model claude-opus-4-8.

Symptom

Claude was trying to create a large Markdown architecture document with Write. It repeatedly emitted a malformed/truncated tool input. The session JSONL shows the raw tool input was only 105 bytes:

{"file_path": "E:/.../.momo/architecture/opus48-agentic-ui-reuse-architecture-synthesis.md"

So the content field and closing JSON were never emitted. The CLI surfaced:

InputValidationError: Write was called with input that could not be parsed as JSON.
You sent (first 105 of 105 bytes): {"file_path": "E:/.../opus48-agentic-ui-reuse-architecture-synthesis.md"

This repeated after multiple explicit user corrections, including instructions equivalent to:

  • do not create the file
  • just print the content
  • I am human and will save the document myself
  • output only, no tools

Despite those instructions, the next assistant turns kept attempting the same malformed Write call.

Control that broke the loop

The content was not logically unavailable. The same context could produce it when tools were removed at the runtime level.

A forked/resumed print run with all tools disabled succeeded:

claude -p --resume <session-id> --fork-session --safe-mode --disable-slash-commands --tools "" --model claude-opus-4-8 --effort max --output-format text "<prompt asking to recover the document body>"

That produced a normal Markdown answer (stop=end_turn), and the session JSONL captured an assistant text block of ~17k chars. Separately, using an interactive prompt like:

print 模式给我直接输出,不要用任何工具!!!!

also made Claude print the document instead of retrying the broken tool path.

Why this matters

This suggests a useful distinction:

  • The model/context had enough information to produce the document.
  • The failure was in the tool-call path / large argument emission / recovery behavior.
  • Natural-language correction inside the same interactive tool loop was not enough; runtime-level tool disabling or print mode was enough.

Suggested product behavior

  1. After N consecutive InputValidationErrors for the same tool with the same/truncated raw input, stop retrying that tool automatically.
  2. Surface a typed recovery hint such as: "large tool argument appears truncated; use print/no-tools mode or split the write into smaller chunks."
  3. If the user explicitly says "do not use tools / just print", honor that as a hard guard for the next turn.
  4. Consider a built-in recovery action in the TUI: "continue this turn in print/no-tools mode".

This is probably related to the broader truncation/tail-cut reports such as #69085, but #895 seems like the best canonical issue for the Write/missing-content user-visible failure mode.

tblitz · 17 days ago

Root cause for many of these "required parameter is missing" errors — confirmed still live on 2.1.195

In a large fraction of cases this InputValidationError: required parameter X is missing is not a missing parameter — it's value pollution from a mismatched close tag. When Claude emits a tool call, it sometimes closes a string parameter with a tag matching the field name (e.g. </content>, </understanding>) instead of </parameter>. The harness parser doesn't treat that as an error: it keeps consuming until the next valid </parameter>, absorbing the following parameter's markup into the previous string's value. That following parameter then arrives null/absent, and the tool reports it "missing."

This is documented with clean repros in #48679 ("100% repro"), #44826, and #53186 — all of which were closed NOT_PLANNED or auto-deduped/staled, none fixed. The symptom keeps resurfacing here because the root cause was never addressed.

Captured pollution shape. Calling an MCP remember(content, summary, tags) tool, the server received content ending with:

...golf, seven; done.</content>
<parameter name="summary">CANARY-SUM-7Q

summary was lost (absorbed into content); tags — which came after the next valid </parameter> — survived. The same payload sent to the same server via a direct MCP stdio client arrives 100% intact, so the fault is in Claude Code's tool-call emission/parse path, not the server.

A minimal, self-contained reproduction (a ~30-line echo MCP server + a control client that isolates it to the client side) is in #72228.

Environment: Claude Code 2.1.195 · Linux · model claude-opus-4-8.

Ask: treat only </parameter> as a parameter terminator, and error or repair on a mismatched / field-named close tag rather than silently absorbing the next parameter. This is silent data corruption — the call returns success with a null field — not just a UX papercut, which is why it deserves a fix rather than another staleness close.

Showing cached comments. Read the full discussion on GitHub ↗