Claude Code sendet das Feld context_management zusammen mit dem anthropic-beta-Header, der es aktiviert, und dieser 400-Fehler bedeutet, dass das Feld ein Backend erreichte, das es nicht akzeptieren würde: Ein Gateway oder Proxy entfernte den Header oder leitete die Anfrage an ein Backend mit einem anderen Schema weiter, etwa Amazon Bedrock. Claude Code versucht dies nicht erneut. Setzen Sie CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 oder neuer), um das Senden des Feldes zu stoppen, oder sorgen Sie dafür, dass das Gateway anthropic-beta weiterleitet.
Der Fehler
// Through Kunavo, if a channel rejects the field: the upstream message, typed as
// Anthropic types a 400; no request_id field, the upstream's own id is appended:
{"type":"error","error":{"type":"invalid_request_error","message":"context_management: Extra inputs are not permitted (request id: …)"}}
// From Anthropic's API directly, as Claude Code prints it:
// API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"context_management: Extra inputs are not permitted"},"request_id":"req_011C..."}
// request_id varies per request; a gateway may drop it, or append its own id to the message.
// Same mismatch, other fields: tools.0.custom.eager_input_streaming, tools.N.custom.defer_loadingUrsachen und Lösungen im Überblick
| Ursache | Lösung |
|---|---|
| Ein Gateway leitet den Body weiter, entfernt aber anthropic-beta | Leiten Sie den Header unverändert weiter oder setzen Sie beim Client CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. |
| Ein Gateway im Anthropic-Format vor Amazon Bedrock oder Google Cloud | Richten Sie Claude Code auf das eigene Format des Anbieters (CLAUDE_CODE_USE_BEDROCK oder CLAUDE_CODE_USE_VERTEX) oder setzen Sie das Flag. |
| Claude Code älter als 2.1.27 | Aktualisieren Sie. Vor 2.1.27 deckte das Flag die Kontextverwaltung nicht ab. |
| Der Fehler nennt stattdessen eager_input_streaming oder defer_loading | Dieselbe Abweichung, ein Beta-Toolfeld. Das Flag entfernt diese ab 2.1.77. |
Bestätigen Sie, dass der Header fehlt
Claude Code verknüpft jedes Pre-Release-Bodyfeld mit dem anthropic-beta-Wert, der es aktiviert, und beide müssen gemeinsam übertragen werden: Ein Gateway, das den Header entfernt, aber den Body weiterleitet, erzeugt harte 400-Fehler, und nur wenn beide fehlen, wird die Funktion stillschweigend deaktiviert (https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through, Stand September 2026). Senden Sie eine Anfrage an Ihre Basis-URL mit dem Feld und seinem Header in der Form, die die Kontextbearbeitungsseite von Anthropic verwendet, jedoch ohne deren Websuche-Tool (https://platform.claude.com/docs/en/build-with-claude/context-editing). Derselbe 400-Fehler bei vorhandenem Header bedeutet, dass der Header ein Backend, das ihn akzeptiert, nicht erreicht.
curl -s "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: context-management-2025-06-27" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-4-6", "max_tokens": 64,
"messages": [{"role": "user", "content": "ping"}],
"context_management": {"edits": [{"type": "clear_tool_uses_20250919"}]}}'Claude Code daran hindern: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Dies ist die dokumentierte clientseitige Lösung: Die eigene Fehlerreferenz von Claude Code nennt sie für diese Meldung als Fallback, wenn das Gateway nicht dazu gebracht werden kann, den Header weiterzuleiten (https://code.claude.com/docs/en/errors#extra-inputs-are-not-permitted). Sie entfernt Anthropic-spezifische anthropic-beta-Header und Beta-Tool-Schemafelder wie defer_loading und eager_input_streaming (https://code.claude.com/docs/en/env-vars); außerdem ergänzt der Gateway-Leitfaden, dass dadurch auch die Vorabversionsfelder im Body entfernt werden, einschließlich der Kontextverwaltung (https://code.claude.com/docs/en/llm-gateway-protocol#disable-pre-release-capabilities). Dafür ist Claude Code 2.1.27 oder höher erforderlich: Diese am 30. Januar 2026 veröffentlichte Version ist diejenige, deren Changelog besagt, dass das Flag nun den Kontextverwaltungsfehler für Gateway-Nutzer vermeidet (https://code.claude.com/docs/en/changelog). Der Preis dafür sind Vorabversionsfunktionen und die MCP-Tool-Suche, sodass MCP-Tools im Voraus geladen werden (ab 2.1.227 können verwaltete Einstellungen die Tool-Suche aktiviert lassen); adaptives Reasoning wird vom Modell und nicht von einer Beta ausgewählt und bleibt aktiviert. Tragen Sie es in den Env-Block von ~/.claude/settings.json ein, damit es für jede Sitzung gilt (https://code.claude.com/docs/en/settings-reference#env).
claude --version # 2.1.27 or later
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude
# Every session, in ~/.claude/settings.json:
# { "env": { "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } }Wenn Sie das Gateway betreiben: anthropic-beta weiterleiten oder das Format überbrücken
Der Gateway-Leitfaden von Claude Code führt anthropic-version und anthropic-beta als Header auf, die auf einer Route im Anthropic-Format unverändert weitergeleitet werden sollen, und fordert Gateways auf, anthropic-*‑Header und Body-Felder als offene Listen durchzureichen, statt nur die heute bekannten Header und Body-Felder per Allowlist freizugeben, da jede Version neue hinzufügt. Als häufige Ursache für diesen 400er nennt er ein Gateway, das Anfragen im Anthropic-Format akzeptiert und an Amazon Bedrock weiterleitet. Wenn das Ihre Konfiguration ist, stellen Sie das eigene Format des Anbieters bereit und verweisen Sie Claude Code mit den folgenden Anbieter-Variablen darauf; auf dieser Route begrenzt Claude Code die gesendeten Beta-Header und -Felder auf diejenigen, die der Anbieter akzeptiert (https://code.claude.com/docs/en/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway).
# Only if your gateway exposes the Amazon Bedrock format:
export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
export CLAUDE_CODE_USE_BEDROCK=1Wenn Sie Kunavo verwenden
Kunavo war eines der Gateways, um die es auf dieser Seite geht. Bis zum 24. September 2026 leitete /v1/messages Ihren JSON-Body unverändert weiter, einschließlich context_management, entfernte jedoch anthropic-beta – genau die Kombination aus weitergeleitetem Body und entferntem Header, die in der Fehlerreferenz von Claude Code genannt wird – und Claude-Code-Anfragen über Kunavo schlugen bis Anfang September 2026 mit dieser Meldung fehl, sämtlich auf einem Upstream-Kanal, der am 11. September außer Betrieb genommen wurde. Kunavo leitet jetzt die anthropic-beta-Werte weiter, die die Kosten einer Anfrage nicht verändern, darunter context-management-2025-06-27, und entfernt den Rest, etwa den schnellen Modus, serverseitige Fallbacks, Komprimierung und die 1M-Kontext-Beta; eine Anfrage, die den schnellen Modus, serverseitige Fallbacks, Komprimierung oder das Advisor-Tool verwendet, erhält einen 400er, der das Feld nennt. Der Kanal, der Claude heute bedient, akzeptierte in einem Test am 24. September 2026 context_management mit und ohne Header, daher sollten Sie CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS mit Kunavo nicht benötigen. Dieser Kanal entscheidet unabhängig von den eintreffenden Headern, welche Vorabversionsfelder er akzeptiert: Im selben Test lehnte er output_config.task_budget und clear_at in einer Systemnachricht als zusätzliche Eingaben ab, jeweils mit und ohne zugehörige Header. Wenn eine Ablehnung Sie erreicht, kommt sie als HTTP 400 vom Typ invalid_request_error an und enthält den Meldungstext des Upstreams mit angehängter eigener Request-ID des Upstreams; weder Kunavo noch Claude Code versuchen die Anfrage erneut, und sie wird nicht berechnet. Der übrige Claude-Code-Aufbau für Kunavo steht in dem Claude-Code-Integrationsleitfaden.
Häufig gestellte Fragen
Was bedeutet „context_management: Extra inputs are not permitted“?
Die API oder das Backend hinter Ihrem Gateway hat ein context_management-Feld erhalten, das es nicht akzeptiert. Bei der Anthropic API benötigt dieses Feld den Beta-Header für die Kontextbearbeitung (context-management-2025-06-27), und die Fehlerreferenz von Claude Code führt diese Meldung auf einen Proxy oder ein Gateway zurück, das den anthropic-beta-Header entfernt hat. Claude Code sendet das Feld und den Header als Paar, daher hat etwas dazwischen den Header entfernt oder die Anfrage an ein Backend mit einem anderen Schema weitergeleitet.
Deaktiviert CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS Thinking oder Prompt-Caching?
Nein. Adaptives Reasoning wird vom Modell und nicht von einer Beta ausgewählt, und für das standardmäßige Prompt-Caching (cache_control) gibt es keine Beta-Zuordnung. Das Flag entfernt Vorabversionsfunktionen – Beta-Header, Beta-Toolfelder und Kontextverwaltung – sowie die MCP-Tool-Suche, sodass MCP-Tools im Voraus geladen werden. Bei älteren Modellen, die manuelles erweitertes Thinking verwenden, benötigt verschachteltes Thinking zwischen Tool-Aufrufen einen Beta-Header; auch dieses wird daher deaktiviert.
Gibt es einen Schalter, der nur context_management deaktiviert?
Nicht als dokumentierte Option, Stand September 2026. Das Flag deckt alle Vorabversionsfunktionen auf einmal ab – die einzige Ausnahme ist ab Claude Code 2.1.227, dass sich die MCP-Tool-Suche über verwaltete Einstellungen aktiviert lassen kann – und eine Anfrage nach einem Schalter ausschließlich für context_management (anthropics/claude-code#64510) wurde wegen Inaktivität geschlossen. Bauen Sie nicht auf Variablen, die nicht in der Referenz der Claude-Code-Umgebungsvariablen stehen.
Soll ich stattdessen Claude Code downgraden?
Im Januar 2026 meldeten Kommentatoren in anthropics/claude-code#21612, dass 2.1.20 die letzte funktionierende Version sei, aber die ausgelieferte Lösung war 2.1.27, deren Changelog-Eintrag das Flag auf diesen Fehler ausweitet. Ein so alter Versions-Pin verpasst außerdem 2.1.77, wodurch das Flag Beta-Toolfelder entfernen konnte. Setzen Sie das Flag und bleiben Sie aktuell.
Der Fehler nennt stattdessen tools.0.custom.eager_input_streaming
Dieselbe Art von Abweichung, ein anderes Feld: Ein Tool-Schemafeld ist bei einem Backend angekommen, das es ablehnt. Hinter einer benutzerdefinierten Basis-URL sendet Claude Code dieses Feld – feingranulares Tool-Streaming – nur, wenn Sie CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1 setzen. Das Flag entfernt ab 2.1.77 Beta-Toolfelder, und 2.1.80 behob 400er beim feingranularen Tool-Streaming über Proxies, Bedrock und Vertex.
Verwandte Anleitungen
- Claude Code „API Error: bad_response_status_code“ — den zugrunde liegenden Status lesen
- Claude Code „API Error: 401 authentication_error“ mit einer benutzerdefinierten Base-URL — alle Ursachen
- LLM-Gateway – eine API für jedes Modell: Routing, Fallback, Abrechnung und Observability (2026)
- Claude API 400 „Ungültige `signature` im `thinking`-Block“ — wodurch wurde die Signatur beschädigt und wie lässt sie sich beheben?
Weitere Informationen zur Fehlersemantik finden Sie unter Fehlerreferenz; einen Schlüssel erhalten Sie in einer Minute über Registrierung und die Authentifizierungsanleitung.