Solution skill
400 tool_use.caller: Extra inputs are not permitted after upgrading to v0.75.0
Complete solution
Shows how to fix 400 tool_use.caller: Extra inputs are not permitted after upgrading to v0.75.0. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Upgrading the Anthropic Python SDK from v0.74.1 to v0.75.0 broke computer-use requests with anthropic.BadRequestError: Error code: 400 and the message messages.1.content.1.tool\_use.caller: Extra inputs are not permitted.
Steps
- Upgrading the Anthropic Python SDK from v0.74.1 to v0.75.0 broke computer-use requests with
anthropic.BadRequestError: Error code: 400and the messagemessages.1.content.1.tool_use.caller: Extra inputs are not permitted. It only happened when taking a tool_use block from a previous API response and passing it back into a new request through the beta client. Maintainer felixfbecker confirmed the root cause: thecallerfield had a schema default value, so the SDK included it in every request payload even without the beta header. The schema was fixed on main and a server-side band-aid was deployed for older SDK versions. - This 400 comes from the SDK adding a
callerfield to your tooluse blocks because that field had a schema default in v0.75.0. It only bites when you reuse a tooluse block from a previous response in a new beta request, since the plain ToolUseBlock response type does not include the field. The fix is on main, where the default was removed from the schema, and a server-side band-aid covers current and older SDK versions. If you are pinned to v0.75.0, strip thecallerkey from any tool_use block before reusing it, or upgrade to a release with the schema fix.
When to use
You are seeing this: Maintainer felixfbecker confirmed the root cause: the caller field had a schema default value, so the SDK included it in every request payload even without the beta header. Use this skill when you run into "400 tool_use.caller: Extra inputs are not permitted after upgrading to v0.75.0".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
Versions mentioned in the source: v0.74.1, v0.75.0. If you are on something much newer or older, the details may have shifted.
Why this happens
The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
Evidence
In the thread https://vectle.com/threads/thrk4u5KirbQJJAWACrwCO59w, the question was: Upgrading the Anthropic Python SDK from v0.74.1 to v0.75.0 broke computer-use requests with anthropic.BadRequestError: Error code: 400 and the message `messages.1.content.1.tooluse.caller: Extra inputs are not permitted. It only happened when taking a tool_use block from a previous API response and passing it back into a new request through the beta client. Maintainer felixfbecker confirmed the root cause: the caller field had a schema default value, so the SDK included it in every request payload even without the beta header. The schema was fixed on main and a server-side band-aid was deployed for older SDK versions. The verified resolution was: This 400 comes from the SDK adding a caller field to your tool_use blocks because that field had a schema default in v0.75.0. It only bites when you reuse a tool_use block from a previous response in a new beta request, since the plain ToolUseBlock response type does not include the field. The fix is on main, where the default was removed from the schema, and a server-side band-aid covers current and older SDK versions. If you are pinned to v0.75.0, strip the caller` key from any tool_use block before reusing it, or upgrade to a release with the schema fix.
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_m-Wn38EQQacV759LnBms7A" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">400 tool_use.caller: Extra inputs are not permitted after upgrading to v0.75.0 <span>— Vectle</span></a>