Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Error reference changederrors

Nearest release: v2.1.250, published an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+19added
Lines−0removed
From line 108 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits187to this page, all time

### Tool input schema is invalid

The whole hunk

from line 108, old and new numbered
/
lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 108
108108| `Unable to resize image` | [Request errors](#unable-to-resize-image) |
109109| `PDF too large` / `PDF is password protected` | [Request errors](#pdf-errors) |
110110| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |
111| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` | [Request errors](#tool-input-schema-is-invalid) |
111112| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |
112113| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |
113114| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |
from line 1534
15331534* Configure your gateway to forward the `anthropic-beta` header. See [feature pass-through](/docs/en/llm-gateway-protocol#feature-pass-through) for what gateways must forward.
15341535* As a fallback, set [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/en/env-vars) before launching. [Disable pre-release capabilities](/docs/en/llm-gateway-protocol#disable-pre-release-capabilities) covers the exact scope.
15351536 
1537### Tool input schema is invalid
1538 
1539A tool in the request declared an `input_schema` that fails the API's JSON Schema validation, so the API rejected the whole request. The number after `tools.` is the failing tool's position in the request's tool list, not a name you can look up.
1540 
1541```text theme={null}
1542API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid
1543```
1544 
1545Claude Code [excludes MCP tools whose input schema would fail this validation](/docs/en/mcp#tools-with-invalid-input-schemas) when it loads a server's tools, so requests normally never include one. On a deployment that doesn't receive the remote configuration that enables the exclusion, Claude Code records in the server's log which tool would be rejected but sends it anyway, so this error can still occur. The error can also occur for a tool whose schema declares a JSON Schema dialect other than draft 2020-12 in `$schema`: Claude Code doesn't check those schemas against the JSON Schema meta-schema, though it still excludes one with an invalid top-level property name.
1546 
1547Before v2.1.216, no deployment ran the exclusion checks.
1548 
1549**What to do:**
1550 
1551* If your Claude Code version is earlier than v2.1.216, run `claude update`.
1552* Remove or [disable](/docs/en/mcp#disable-a-server-without-removing-it) the MCP server that declares the invalid schema. The error names the tool only by position. On v2.1.216 or later, check each server's log for a line naming a tool whose input schema would be rejected. If no log names one, disable servers one at a time.
1553* If you maintain the server, fix the tool's `input_schema`. The schema must be valid JSON Schema, and top-level property names must be 1 to 64 characters long and use only ASCII letters and digits, `_`, `.`, and `-`. See [Tools with invalid input schemas](/docs/en/mcp#tools-with-invalid-input-schemas).
1554 
15361555<h3 id="theres-an-issue-with-the-selected-model">
15371556 There's an issue with the selected model
15381557</h3>
from line 2488
24692488* From the shell, run `claude attach <id>` again. Claude Code prints `Session <id>'s terminal host died — restarting it on a fresh one…` and reopens the session
24702489* You can't restart a shell-command row this way; dispatch the command again to rerun it
24712490 
2472Before v2.1.247, a dead host process could pass every liveness check the background service ran, so opening the session showed `opening… · esc to cancel` indefinitely and `claude attach <id>` waited without reporting an error.
2473 
2474<h3 id="session-isnt-responding">
2475 Session isn't responding
2476</h3>
2477 
2478You opened a [background session](/docs/en/agent-view) and the background service accepted the open, but no output arrived for about ten seconds, so Claude Code concludes that the process relaying the session's terminal can't deliver output, and ends the attempt instead of waiting.
2479 
2480In agent view, Claude Code offers a restart in the footer:
2481 
2482```text theme={null}
2483Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).
2484```
2485 
2486From the shell, `claude attach <id>` prints the cause and exits:
2487 
2488```text theme={null}
2489Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).
2490```
2491 
2492Claude Code never restarts a row running a [shell command](/docs/en/agent-view#run-a-shell-command) for you, because a restart would run the command again.
2493 
2494**What to do:**
2495 
2496* In agent view, press `Enter` on the same row again. Claude Code stops the unresponsive process and restarts the session, and the conversation resumes. Nothing is stopped without that second press
2497* From the shell, run `claude stop <id>`, then `claude attach <id>`
2498* For a shell-command row, press `Ctrl+X` in agent view or run `claude stop <id>` to stop it; dispatch the command again to rerun it
2499 
2500### Session was stopped while the respawn was in flight
2501 
2502You opened a [background session](/docs/en/agent-view) whose process wasn't running, and while Claude Code was restarting it, another Claude Code process stopped it, for example `claude stop` in another terminal. Claude Code keeps the session stopped:
2503 
2504```text theme={null}
2505Session <id> was stopped while the respawn was in flight
2506```
2507 
2508Opening a session you just dispatched, while its process is still starting, waits for the process instead. Before v2.1.246, opening it at that moment could stop it and show this message.
2509 
2510**What to do:**
2511 
2512* If you didn't stop the session, open its row again in agent view or
2491Before v2.1.247, a dead host process could pass every liveness check the background service r
Feedback