Claude Code hinter Drittanbieter-Gateways: Fehler und offizielle Fixes (2026)
Stand 2026-10-07 gibt es für die gängigen 400-Fehler, die Claude Code hinter einem Drittanbieter-Gateway oder mit eigener ANTHROPIC_BASE_URL meldet, jeweils einen offiziellen Fix oder eine offizielle Abhilfe: „400 … Input tag 'advisor_20260301'“ ist ab 2.1.276 behoben; lehnt Ihr Gateway strukturierte Ausgaben ab, setzen Sie CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1 (neu in 2.1.288); fehlschlagende Anfragen, wenn ein Gateway einen Beta-Header mit einem anderen Status als 400 ablehnt, sind seit 2.1.290 behoben. Für „Extra inputs are not permitted“ nennt die offizielle Fehlerreferenz als Ursache ein Gateway, das den Header anthropic-beta entfernt hat; es muss den Header unverändert weiterleiten. Diese Seite listet für jeden Fehler den genauen Wortlaut, die Ursache und den Fix – nach dem offiziellen Changelog von Claude Code und der Gateway-Dokumentation.
Aktualisiert 2026-10-08
Vier Versionen und Header, die Sie kennen sollten
Behebt den 400 mit advisor_20260301
Laut offiziellem Changelog schlug jede Anfrage mit „400 … Input tag 'advisor_20260301'“ fehl, wenn ANTHROPIC_BASE_URL auf einen Proxy oder ein Gateway zeigte – eine Regression aus 2.1.275, behoben in 2.1.276 (veröffentlicht am 2026-09-18).
Neu: CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS
Behebt fehlschlagende Sitzungstitel, Memory-Abruf und Prompt-Hooks hinter Gateways, die strukturierte Ausgaben ablehnen. Mit dem Wert 1 entfallen nur das Feld output_config.format und der dazugehörige Beta-Wert; die übrigen Vorab-Funktionen bleiben aktiv.
Behebt Beta-Header-Ablehnungen ohne 400
Offizieller Changelog: behebt fehlschlagende Anfragen hinter Proxys und Gateways, die einen der Beta-Header von Claude Code mit einem anderen Status als 400 oder zusammen mit einem zweiten Beta ablehnen (veröffentlicht am 2026-10-05).
Header, die ein Gateway unverändert weiterleiten muss
Aus dem offiziellen Gateway-Kompatibilitätsleitfaden: beide unverändert weiterleiten und anthropic-beta nicht per Allowlist einzelner Werte filtern, denn die Menge ändert sich mit jedem Release von Claude Code.
Warum mit einem Gateway plötzlich 400er auftauchen
Stand 2026-10-07 haben 400-Fehler von Claude Code hinter einem Drittanbieter-Gateway zwei Hauptquellen. Die eine sind Regressionen im Client – das Schema des Artifact-Tools in 2.1.265 bis 2.1.267 und der Eintrag des Advisor-Tools in 2.1.275 –, die ein Update behebt. Die andere ist ein Gateway, das Beta-Header nicht zusammen mit den dazugehörigen Feldern im Request-Body weiterleitet. Laut offiziellem Kompatibilitätsleitfaden behandelt Claude Code ein Gateway aus ANTHROPIC_BASE_URL als Endpunkt im Anthropic-Format und schickt ihm dieselben Beta-Header und Body-Felder wie an api.anthropic.com; ein Gateway, das den Header entfernt, den Body aber durchlässt, oder den Body an einen Dienst mit anderem Schema weiterreicht, erzeugt harte 400-Fehler, und nur wenn beide Hälften gemeinsam fehlen, schaltet sich die Funktion still ab. Ein Gateway, das Request-Bodys zur Inhaltsprüfung umschreibt, zerreißt dieses Paar laut Leitfaden genauso.
Seit 2.1.285: eigene Endpunkte standardmäßig mit 1M
Der Changelog-Eintrag zu Claude Code 2.1.285 (veröffentlicht am 2026-09-29) lautet: „Changed sessions behind a custom ANTHROPIC_BASE_URL to use the 1M context window of models that have one (Opus 4.7+, Sonnet 5+, Fable); run /autocompact 200k if your gateway stops at 200K“. Modelle mit 1M-Fenster (Opus 4.7+, Sonnet 5+, Fable) laufen hinter einem eigenen Endpunkt also mit 1M, und endet das Gateway bei 200K, führen Sie /autocompact 200k aus. Die offizielle Seite zur Modellkonfiguration ergänzt, dass Claude Code ein niedrigeres Limit, das das Gateway oder der Server dahinter durchsetzt, nicht erkennen kann; lehnt Ihr Gateway Anfragen über 200K Tokens ab, setzen Sie CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 in der Umgebung, aus der Claude Code startet.
Zeitleiste (Release-Daten auf GitHub)
Claude Code 2.1.276 erscheint und behebt, dass jede Anfrage mit „400 … Input tag 'advisor_20260301'“ fehlschlug, wenn ANTHROPIC_BASE_URL auf einen Proxy oder ein Gateway zeigte – eine Regression aus dem am Vortag erschienenen 2.1.275.
2.1.288 erscheint mit der neuen Variable CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS; am Vortag sorgte 2.1.287 dafür, dass CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS das Format für strukturierte Ausgaben auch aus Anfragen für Sitzungstitel und Prompt-Hooks entfernt.
2.1.290 erscheint und behebt fehlschlagende Anfragen, wenn ein Gateway einen Beta-Header mit einem anderen Status als 400 oder zusammen mit einem zweiten Beta ablehnte. Stand 2026-10-07 ist 2.1.292 (erschienen am 2026-10-06) die neueste Version.
Bestätigt vs. nicht verifiziert
Bestätigt (wörtlich nachprüfbar)
Folgendes lässt sich im offiziellen Changelog und in der Dokumentation von Claude Code wörtlich nachprüfen: 2.1.276 behebt den 400 mit advisor_20260301 (Regression aus 2.1.275), und ab 2.1.280 wiederholt Claude Code bei aktivem Advisor nach derselben Ablehnung die Anfrage einmal ohne den Eintrag; 2.1.287 dehnt CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS auf das Format für strukturierte Ausgaben aus, und 2.1.288 führt CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS ein; 2.1.290 behebt Beta-Header, die mit einem anderen Status als 400 abgelehnt werden; seit 2.1.285 laufen Modelle mit 1M-Fenster hinter eigenen Endpunkten standardmäßig mit 1M; ein Gateway muss anthropic-version (derzeit 2023-06-01) und anthropic-beta unverändert weiterleiten; und weil die Wiederherstellung von Claude Code am Fehlerwortlaut ansetzt, sollten auch Fehler-Response-Bodys unverändert weitergeleitet werden. Die Release-Daten stammen aus den GitHub Releases.
Nicht verifiziert / offiziell nicht festgelegt
Auf drei Fragen gibt es keine offizielle Antwort – ziehen Sie daraus keine Schlüsse. Erstens nennt der Eintrag zu 2.1.290 weder einen Fehlertext noch den betroffenen Beta-Header. Zweitens hängt es vom jeweiligen Gateway ab, welche Header es weiterleitet, welche Felder es prüft und wo sein Kontextlimit liegt; die offizielle Dokumentation antwortet nicht für das Gateway, und Claude Code erkennt ein niedrigeres Gateway-Limit nicht. Drittens wächst die Menge der Funktionen, die Claude Code sendet, mit jedem Release, und offiziell wird empfohlen, das Gateway gegen neue Releases zu testen, statt eine beobachtete Liste festzuschreiben. Diese Liste ist daher nicht abschließend, und diese Seite verspricht für kein Gateway, QCode eingeschlossen, dass es einen bestimmten Beta-Wert durchlässt.
Was tun: Update, Gateway anpassen oder Variable setzen
Claude Code aktualisieren vs. Notlösung per Variable
Bei Client-Regressionen hat das Update Vorrang: Der Schema-400 in 2.1.265–2.1.267 ist ab 2.1.268 behoben, advisor_20260301 in 2.1.275 ab 2.1.276. Können Sie noch nicht aktualisieren, sind die offiziellen Notlösungen, das Artifact-Tool abzuschalten (CLAUDE_CODE_DISABLE_ARTIFACT=1) bzw. CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 zu setzen. Zum Aktualisieren nennt die offizielle Setup-Seite claude update, bei einer npm-Installation npm install -g @anthropic-ai/claude-code@latest.
DISABLE_EXPERIMENTAL_BETAS vs. DISABLE_STRUCTURED_OUTPUTS
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 wirkt breit: Es entfernt Context Management samt Feld context_management, Beta-Tool-Felder wie strict und defer_loading, das Feld output_config.format für strukturierte Ausgaben (ab 2.1.287), output_config.task_budget und die MCP-Tool-Suche. Die Beta-Werte für erweiterten Kontext, Interleaved Thinking und Effort bleiben dagegen erhalten, ebenso Werte, die Sie selbst über ANTHROPIC_BETAS hinzufügen. CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1 (ab 2.1.288) entfernt nur das Formatfeld für strukturierte Ausgaben und den dazugehörigen Beta-Wert; die übrigen Vorab-Funktionen bleiben aktiv.
Fehlertext → Ursache → Fix, Punkt für Punkt
① „400 … Input tag 'advisor_20260301'“ bei jeder Anfrage → beim schrittweisen Rollout in 2.1.275 enthalten Anfragen einen Eintrag für das Advisor-Tool, auch wenn der Advisor aus ist, und ein Gateway, das Tool-Typen prüft, lehnt die gesamte Anfrage ab → auf 2.1.276 oder neuer aktualisieren; auf 2.1.275 CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 setzen. Bei aktivem Advisor wiederholt Claude Code ab 2.1.280 die Anfrage einmal ohne den Eintrag und lässt den Advisor für diese Base URL bis zum Beenden weg. ② „API Error: 400 ... Extra inputs are not permitted ... context_management“ → ein Proxy oder LLM-Gateway hat den Request-Header anthropic-beta entfernt, daher lehnt die API die davon abhängigen Felder ab → das Gateway anthropic-beta unverändert weiterleiten lassen; als Rückfallebene CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Diese 400er wiederholt Claude Code nicht. ③ Ein „Unexpected value(s)“-Fehler zum Header anthropic-beta → das Gateway lehnt einen Beta-Wert ab → CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1; Fehlschläge, weil das Gateway einen Beta-Header mit einem anderen Status als 400 oder zusammen mit einem zweiten Beta ablehnt, sind in 2.1.290 behoben (einen Fehlertext nennt der Changelog dafür nicht); ein in jeder Runde endgültiger „API Error: 400“ hinter einem Gateway, das Fehlerantworten umschreibt, wurde in 2.1.275 behoben. ④ Ein 400, der output_config nennt, oft „Extra inputs are not permitted“, wobei Sitzungstitel, Memory-Abruf oder Prompt-Hooks scheitern → der Dienst hinter dem Gateway lehnt Felder für strukturierte Ausgaben ab → ab 2.1.288 CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1 setzen, das nur das Formatfeld entfernt; oder CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (deckt das seit 2.1.287 ab), das Effort beibehält. ⑤ Ein 400, der thinking oder adaptive nennt, etwa „Input tag 'adaptive' found“ → der Modell-Build hinter dem Gateway akzeptiert kein Adaptive Reasoning → dieses Modell aktualisieren; bei Opus 4.6 und Sonnet 4.6 funktioniert stattdessen CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1. ⑥ 400 bei jeder Anfrage auf 2.1.265–2.1.267, wobei das Gateway in eigenen Worten das Input-Schema eines Tools oder dessen pattern ablehnt → ein regulärer Ausdruck im Input-Schema des Artifact-Tools, den solche Endpunkte ablehnen → auf 2.1.268 oder neuer aktualisieren oder das Artifact-Tool abschalten. ⑦ „API returned an empty or malformed response (HTTP 200)“ → das Gateway oder ein zwischengeschalteter Proxy hat keine API-Antwort geliefert, oft eine HTML-Fehler- oder Login-Seite → direkt per curl testen und den Abschnitt reparieren, der etwas anderes als eine Claude-API-Antwort liefert; derselbe Fehler, weil ein Gateway die Nicht-Streaming-Antwort als text/plain kennzeichnet, ist seit 2.1.271 behoben. ⑧ Ein 400, der ein Kontextlimit in den eigenen Worten des Gateways meldet, etwa „ContextWindowExceededError“ oder „prompt token count of N exceeds the limit of M“ → das Gateway setzt ein kleineres Fenster als das Modell durch und schreibt den Fehler um, sodass Claude Code nicht automatisch kompaktiert und wiederholt → mit /compact die Sitzung retten; vorbeugend CLAUDE_CODE_AUTO_COMPACT_WINDOW auf das Gateway-Limit setzen (mindestens 100.000); seit 2.1.285 bei einem Gateway mit 200K-Grenze /autocompact 200k ausführen.
Auf QCode
Stand 2026-10-07 beschreibt die QCode-Dokumentation die Einrichtung von Claude Code so: ANTHROPIC_BASE_URL ist https://api.qcode.cc/api (ohne /v1 und ohne abschließenden Schrägstrich), ANTHROPIC_AUTH_TOKEN ist der mit cr_ beginnende Schlüssel, den Sie in der Konsole erstellen; Claude-Modelle funktionieren nur über den Endpunkt mit Anthropic-Protokoll. Die Fehlerbehebungsseite von QCode nennt dieselben Fixes: für „400 … Input tag 'advisor_20260301'“ in 2.1.275 auf 2.1.276 oder höher aktualisieren, für „Unexpected value(s) … anthropic-beta“ CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 setzen; außerdem rät sie, sicherzustellen, dass Sie die neueste Version verwenden, weil viele Probleme in neueren Versionen bereits behoben sind. Beginnen Sie mit dem curl-Selbsttest aus der Dokumentation: Ein POST ohne Body an /api/v1/messages, der 400 liefert, bedeutet, dass Pfad und Schlüssel funktionieren; 401 bedeutet einen ungültigen Schlüssel. Abgerechnet wird pro Token; die Preise je Modell finden Sie unter /models.
Häufig gestellte Fragen
Wie behebe ich „400 … Input tag 'advisor_20260301'“?
Aktualisieren Sie auf Claude Code 2.1.276 oder neuer. Es handelt sich um eine Regression aus 2.1.275: Während eines schrittweisen Rollouts enthielten Anfragen einen Eintrag für das Advisor-Tool, auch wenn der Advisor aus war, und Gateways, die Tool-Typen prüfen, lehnten die gesamte Anfrage ab; ab 2.1.276 wird der Eintrag hinter einem ANTHROPIC_BASE_URL-Gateway nur noch gesendet, wenn Sie den Advisor einschalten. Können Sie noch nicht aktualisieren, setzen Sie CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1. Bei aktivem Advisor wiederholt Claude Code ab 2.1.280 nach derselben Ablehnung die Anfrage einmal ohne den Eintrag und lässt den Advisor danach für diese Base URL weg; /advisor ist bis zum Beenden gesperrt.
Ist „Extra inputs are not permitted“ ein Gateway-Problem?
Meistens ja. Laut offizieller Fehlerreferenz hat ein Proxy oder LLM-Gateway zwischen Claude Code und der API den Request-Header anthropic-beta entfernt, sodass die API die davon abhängigen Felder ablehnt; der typische Wortlaut ist „API Error: 400 ... Extra inputs are not permitted ... context_management“. Die eigentliche Lösung: Das Gateway leitet anthropic-beta unverändert weiter. Als Rückfallebene setzen Sie vor dem Start CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Die Dokumentation weist außerdem darauf hin, dass manche Betas nicht von dieser Variable gesteuert werden und dass Claude Code 400er zu Context-Management- oder Tool-Schema-Feldern nicht wiederholt.
Welche Request-Header muss ein Gateway weiterleiten?
anthropic-version und anthropic-beta, und zwar unverändert – plus anthropic-workspace-id, wenn hinter dem Gateway Claude Platform on AWS steht. anthropic-version lautet derzeit 2023-06-01; anthropic-beta leiten Sie wörtlich weiter, ohne einzelne Werte per Allowlist zu filtern, weil sich die Menge mit jedem Release von Claude Code ändert. Die Zugangsdaten stehen je nach gesetzter Variable in Authorization oder x-api-key; alles, was nicht als unverändert weiterzuleiten markiert ist, darf das Gateway selbst auswerten oder ignorieren. Zudem verlangt die Dokumentation, Fehler-Response-Bodys unverändert weiterzuleiten, weil die automatischen Wiederholungen von Claude Code am Fehlerwortlaut ansetzen.
Was ist der Unterschied zwischen ANTHROPIC_BETAS und CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS?
Sie wirken in entgegengesetzte Richtungen. ANTHROPIC_BETAS ist eine kommagetrennte Liste zusätzlicher anthropic-beta-Werte; laut Dokumentation sendet Claude Code die benötigten Beta-Header ohnehin, und die Variable dient dazu, eine Beta der Anthropic API zu nutzen, bevor Claude Code sie nativ unterstützt. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 entfernt dagegen Vorab-Werte von anthropic-beta samt den dazugehörigen Body-Feldern – für Gateways, die mit „Unexpected value(s)“ oder „Extra inputs are not permitted“ antworten. Werte, die Sie selbst über ANTHROPIC_BETAS hinzufügen, entfernt sie nicht; lehnt das Gateway genau diese ab, nehmen Sie sie selbst aus ANTHROPIC_BETAS heraus.
Mein Gateway unterstützt nur 200K. Was tun ab 2.1.285?
Führen Sie /autocompact 200k aus – das ist die Lösung aus dem Changelog-Eintrag zu 2.1.285. Seit 2.1.285 laufen Modelle mit 1M-Fenster (Opus 4.7+, Sonnet 5+, Fable) hinter einer eigenen ANTHROPIC_BASE_URL mit 1M, und laut offizieller Seite zur Modellkonfiguration erkennt Claude Code ein niedrigeres Gateway-Limit nicht. Damit es bei jedem Start greift, setzen Sie CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 in der Umgebung, aus der Claude Code startet. Meldet das Gateway den Überlauf in eigenen Worten, etwa ContextWindowExceededError, kompaktiert Claude Code nicht von selbst und wiederholt auch nicht – führen Sie zuerst /compact von Hand aus.
Was prüfe ich zuerst, wenn diese Fehler auf QCode auftreten?
Prüfen Sie die Version von Claude Code und aktualisieren Sie auf die neueste; auch die QCode-Dokumentation hält fest, dass viele Probleme in neueren Versionen bereits behoben sind. Stand 2026-10-07 ist das 2.1.292, der offizielle Befehl zum Aktualisieren lautet claude update. Prüfen Sie dann die Konfiguration: ANTHROPIC_BASE_URL muss https://api.qcode.cc/api sein (ohne /v1, ohne abschließenden Schrägstrich), die Zugangsdaten gehören in ANTHROPIC_AUTH_TOKEN, das als Header Authorization: Bearer gesendet wird. Bleibt „Unexpected value(s) … anthropic-beta“, setzen Sie wie in der QCode-Dokumentation beschrieben CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
Quellen
Versionsnummern und Fixes: der offizielle Changelog von Claude Code (CHANGELOG.md im Repository anthropics/claude-code auf GitHub, Einträge 2.1.268, 2.1.271, 2.1.275, 2.1.276, 2.1.280, 2.1.285, 2.1.287, 2.1.288 und 2.1.290), Release-Daten (UTC) aus den GitHub Releases desselben Repositorys. Ursachen und Fixes: auf code.claude.com die Fehlertabelle in „Connect Claude Code to an LLM gateway“, der Claude Code gateway compatibility guide, die Error reference sowie die Seiten zu Umgebungsvariablen, Modellkonfiguration und Advanced setup. Einrichtung bei QCode und Prüfschritte: die Seiten zu Fehlerbehebung, Umgebungsvariablen sowie Endpunkten und API-Formaten auf docs.qcode.cc. Alle abgerufen am 2026-10-07.
Aktualisieren, dann neu verbinden
Base URL auf https://api.qcode.cc/api, Schlüssel in ANTHROPIC_AUTH_TOKEN – ein cr_-Schlüssel genügt, um Claude Code anzubinden. Abgerechnet wird pro Token; die Preise je Modell finden Sie unter /models.
Weiterführende Lektüre
Claude Code: benutzerdefinierten Endpunkt einrichten (ANTHROPIC_BASE_URL)
Claude Code auf einen eigenen Endpunkt ausrichten: die zwei Variablen, welcher Header den Schlüssel trägt und die Form in settings.json.
1M-Kontext in Claude Code über ein Gateway
Seit 2.1.285 laufen eigene Endpunkte standardmäßig mit 1M; was Sie setzen, wenn Ihr Gateway bei 200K endet.
Fehlersuche bei Context Length Exceeded
In welchen Formen der Fehler zum Kontextlimit auftritt und wie Sie jede beheben.
Versionsnummern, Fehlertexte und offizielle Aussagen auf dieser Seite wurden am 2026-10-07 anhand des offiziellen Changelogs und der Dokumentation von Anthropic geprüft; maßgeblich sind die offiziellen Seiten, Änderungen beim Anbieter sind ohne Vorankündigung möglich. Welche Header ein bestimmtes Gateway weiterleitet und wo sein Kontextlimit liegt, regelt die Dokumentation des jeweiligen Dienstes; für die Verfügbarkeit von Modellen gilt /models.