Kurz gesagt: Wenn Sie Claude Code über ein Gateway oder einen Relay eines Drittanbieters nutzen (eigene ANTHROPIC_BASE_URL) und jede Runde mit 403 oder 422 scheitert, sobald der Auto-Modus aktiv ist, aktualisieren Sie auf 2.1.317.
- Laut dem offiziellen Claude Code CHANGELOG behebt 2.1.317, dass „der Auto-Modus in jeder Runde scheitert, wenn ein als Base URL gesetztes LLM-Gateway die serverseitige Sicherheitsprüfung mit 403 oder 422 beantwortet“; ein 403 mit
apiKeyHelperbleibt unverändert. 2.1.317 erschien auf npm am 2. November 2026 um 23:57 UTC. - Am Nachmittag des 3. November (Pekinger Zeit) haben wir mit einem lokalen Proxy ein Gateway simuliert, das die Prüfung ablehnt: 2.1.316 scheiterte bei der ersten Anfrage und danach in jeder Runde; 2.1.317 versuchte es einmal ohne das Prüffeld erneut und erledigte die Aufgabe.
- Direkt mit aicodewith verbunden (
https://api.aicodewith.ai) erledigte der Auto-Modus die Aufgabe mit 2.1.316 und 2.1.317. Unsere API beantwortet die Prüfanfrage mit 200, und Claude Code wechselt zu seinem lokalen Klassifikator. - Noch kein Update möglich? Setzen Sie
CLAUDE_CODE_AUTO_MODE_SERVER=0, damit der Auto-Modus den Server nicht mehr um die Prüfung bittet. Auf 2.1.316 getestet, funktioniert.
API Key erstellen und Claude in Claude Code, Codex und Cursor nutzen →
Was sich in 2.1.317 ändert
Der Auto-Modus ist ein Berechtigungsmodus von Claude Code: Statt jede Aktion selbst zu bestätigen, prüft ein Klassifikator im Hintergrund, ob jede Aktion sicher ist. Laut der Dokumentation zu Berechtigungsmodi bittet Claude Code zuerst den Server um diese Prüfung (serverseitiger Klassifikator), wenn ANTHROPIC_BASE_URL auf ein LLM-Gateway oder einen Proxy zeigt, und fällt auf einen lokalen Klassifikator zurück, wenn der Server nicht prüft.
Das Problem liegt in diesem Schritt: Claude Code fügt der Anfrage ein Feld safeguards und einen Beta-Header hinzu. Manche Gateways kennen beides nicht und antworten mit 403 (abgelehnt) oder 422 (ungültiges Feld). Ältere Versionen behandelten das als normalen Fehlschlag, also scheiterte jede Runde.
Laut CHANGELOG sind die Einträge in 2.1.317 zu Auto-Modus und Gateways:
| Eintrag | Inhalt |
|---|---|
| Hauptfix | Der Auto-Modus scheitert nicht mehr in jeder Runde, wenn ein als Base URL gesetztes Gateway die serverseitige Prüfung mit 403 oder 422 beantwortet (ein 403 mit apiKeyHelper bleibt unverändert) |
| Neuer Hinweis | Ein Hinweis, wenn die Prüfung des Auto-Modus für den Tool-Aufruf eines Subagenten keine Antwort hat; früher erschien in der Hauptansicht nichts |
| 403-Meldung | Eine Regions- oder Netzwerksperre (HTTP 403) wird nicht mehr als Anmeldefehler angezeigt; die Meldung erklärt die Sperre |
| OTel | anthropic.plan, anthropic.seat_type, anthropic.provider und anthropic.custom_base_url in Metriken, Events und Spans |
Frühere Versionen arbeiteten bereits an diesem Bereich:
| Version | Zugehöriger Eintrag |
|---|---|
| 2.1.316 | Behoben: CLAUDE_CODE_AUTO_MODE_SERVER=1 wurde in Sitzungen ignoriert, die eine Host-App (etwa Claude Desktop) hinter einem Proxy oder LLM-Gateway mit abgeschalteten experimentellen Betas startete |
| 2.1.314 | Behoben: Der Auto-Modus meldete einen Aufruf als blockiert und listete ihn in /permissions, wenn die Sicherheitsprüfung kein Urteil lieferte |
| 2.1.304 | Geführte Einrichtung /auto-mode-setup, auch auf Bedrock, Vertex, Foundry, Claude apps gateway und in Sitzungen ohne Telemetrie |
| 2.1.302 | Neu: CLAUDE_CODE_AUTO_MODE_MODEL für das Modell des clientseitigen Klassifikators (serverseitiger Auto-Modus unverändert); claude -p ohne Berechtigungsmodus startet bei Drittanbietern, ohne Telemetrie oder bei frischer Installation in default, --permission-mode auto bleibt auto |
Wer betroffen ist
Alle drei Punkte müssen zutreffen:
- Sie nutzen den Auto-Modus. Laut Dokumentation ist er ab 2.1.283 der Startmodus im Terminal und in VS Code.
ANTHROPIC_BASE_URLzeigt auf ein LLM-Gateway eines Drittanbieters, einen Relay oder einen Firmenproxy.- Dieses Gateway beantwortet Anfragen mit dem Feld
safeguardsoder dem Beta-Headerdangerous-tool-usemit 403 oder 422. Typische Ursachen: strenge Prüfung des Request-Body (unbekanntes Feld → 422) oder eine Sicherheitsrichtlinie (403).
Wer direkt bei der Anthropic API angemeldet ist oder hinter einem Gateway sitzt, das unbekannte Felder durchreicht, ist nicht betroffen. Siehe die Dokumentation zu LLM-Gateways.
So sieht die Prüfanfrage aus
Wir haben zwischen Claude Code und aicodewith einen lokalen Proxy gesetzt, der Anfragen nur protokolliert. Die erste Anfrage einer Sitzung im Auto-Modus enthielt Folgendes (Auszug):
POST /v1/messages?beta=true
anthropic-beta: claude-code-20250219, ..., dangerous-tool-use-2026-09-03, afk-mode-2026-01-31
"safeguards": [{"type": "dangerous_tool_use",
"classifier_context": {"v": 1, "permission_mode": "auto", "platform": "linux", ...}}]
Wenn der Server nicht prüft, fehlt safeguards in späteren Anfragen. Vor jedem Bash-Befehl schickt Claude Code dann eine eigene Anfrage an das Modell des lokalen Klassifikators (standardmäßig claude-sonnet-5).
Tests: 2.1.316 gegen 2.1.317
Aufbau: 3. November 2026, 15:12–15:35 Pekinger Zeit, Linux, Modell claude-opus-5-5, ein aicodewith-Schlüssel, für jeden Lauf ein frisches Konfigurationsverzeichnis. Die Aufgabe: Claude soll fib.py schreiben, das Fibonacci-Zahlen ausgibt, und es mit python3 ausführen, also ein Dateischreibvorgang und ein Bash-Befehl, der durch die Prüfung des Auto-Modus läuft.
claude -p "Create a file fib.py that prints the first 10 Fibonacci numbers, then run it with python3 and tell me the output." \
--permission-mode auto --model claude-opus-5-5 \
--output-format json --debug-file ./cc-debug.log
grep -E "server-classifier|API error" ./cc-debug.log
Das „simulierte Gateway“ ist eine Regel in unserem lokalen Proxy: Jede Anfrage mit dem Feld safeguards bekommt 403 oder 422, alles andere geht an aicodewith weiter. Es bildet den Fall aus dem CHANGELOG nach; so verhält sich aicodewith nicht.
| Fall | 2.1.316 | 2.1.317 |
|---|---|---|
| Direkt zu aicodewith | Erfolg, 3 Runden, 12.0 s | Erfolg, 4 Runden, 17.7 s |
| Simuliertes Gateway, 403 auf die Prüfung | Fehlschlag nach 0.6 s, Failed to authenticate. API Error: 403 ...; die nächste Runde scheiterte ebenso | Erfolg, 3 Runden, 11.8 s |
| Simuliertes Gateway, 422 auf die Prüfung | Fehlschlag nach 0.7 s, API Error: 422 ...; die nächste Runde scheiterte ebenso | Erfolg, 3 Runden, 15.7 s |
| Simuliertes 403 + apiKeyHelper | — | Fehlschlag nach 11 Versuchen, 248.4 s, Failed to authenticate |
| 2.1.316 + CLAUDE_CODE_AUTO_MODE_SERVER=0, simuliertes 403 / 422 | Erfolg, 13.7 s / 10.8 s | Nicht nötig |
Die zusätzliche Runde im direkten 2.1.317-Lauf kam daher, dass Claude das Skript zur Bestätigung ein zweites Mal ausführte; mit der Version hat das nichts zu tun. Jeder erfolgreiche Lauf gab 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 aus.
Direkt zu aicodewith: beide Versionen funktionieren
Unsere API beantwortet die Anfrage mit safeguards mit 200, liefert aber kein Urteil. Im Debug-Log stellt Claude Code fest, dass der Server nicht prüft, und nutzt für den Rest der Sitzung den lokalen Klassifikator:
[server-classifier] the platform gave no classification for this request (server_no_result);
treating that as this deployment's answer: auto mode classifies locally for the rest of
this session and stops sending the classifier context
[auto-mode] new action being classified: tool=Bash actionChars=26
[Stall] classifier_request_finished tool=Bash stage=xml_s1 outcome=ok durationMs=2727
Jede lokale Prüfung eines Bash-Befehls dauerte etwa 2.5–2.7 s. Beim Start gibt stderr einen Hinweis aus, dass die aktuelle Adresse die neue serverseitige Klassifizierung nicht unterstützt und der Auto-Modus weiter funktioniert; den können Sie ignorieren.
2.1.316 hinter einem Gateway, das die Prüfung ablehnt: jede Runde scheitert
{OLD403}
Der 403 erscheint als Failed to authenticate und sieht nach einem falschen Schlüssel aus. Der Schlüssel stimmt: Dieselbe Konfiguration funktioniert im manuellen Modus.
2.1.317: ein neuer Versuch ohne das Prüffeld
Mit demselben Gateway nach dem Update zeigt das Debug-Log:
[ERROR] API error (attempt 1/11): 403 403 {"type":"error","error":{"type":"permission_error",
"message":"gateway policy: field safeguards is not allowed"}}
[WARN] [server-classifier] HTTP 403 with no cause Claude Code recognises, on a request that
carried the dangerous-tool-use beta header; sending it once more without that header
and the safeguards field, to learn whether they caused the refusal
[WARN] [server-classifier] a request was refused (HTTP 403) and answered when sent again
without the dangerous-tool-use beta header and the safeguards field. Until Claude Code
restarts, neither is sent and auto mode does not ask the server to check actions.
To keep the check, let the gateway pass that header and field, then restart Claude Code.
Bekommt 2.1.317 einen 403 oder 422, den es nicht erklären kann, sendet es die Anfrage einmal ohne den Beta-Header dangerous-tool-use und ohne das Feld safeguards. Klappt das, fragt es bis zum Neustart keine Serverprüfung mehr an und nutzt den lokalen Klassifikator. Aktionen werden weiterhin geprüft, nur lokal. Um die Serverprüfung zurückzubekommen, lassen Sie das Gateway Header und Feld durchreichen und starten Claude Code neu.
Ein 403 mit apiKeyHelper scheitert weiterhin
Laut CHANGELOG bleibt ein 403 mit apiKeyHelper unverändert, und genau das haben wir gesehen: 2.1.317 versuchte es 11-mal und brach nach rund vier Minuten ab.
# 2.1.317 + apiKeyHelper, gateway answers 403 to the safety check
[ERROR] API error (attempt 1/11): 403 ...
...
[ERROR] API error (attempt 10/11): 403 ...
Failed to authenticate. API Error: 403 gateway policy: field safeguards is not allowed
# exit 1 after 248.4 s
Mit apiKeyHelper lassen Sie entweder das Gateway safeguards durchreichen oder nutzen CLAUDE_CODE_AUTO_MODE_SERVER=0 (siehe unten).
Auf 2.1.317 aktualisieren
Laut Installationsdokumentation aktualisiert sich die native Installation im Hintergrund; Installationen über npm, Homebrew und WinGet müssen Sie selbst aktualisieren. Bei npm npm install -g ...@latest verwenden, nicht npm update -g.
# native install (curl -fsSL https://claude.ai/install.sh | bash)
claude update
# npm install
npm install -g @anthropic-ai/claude-code@latest
# Homebrew (the claude-code cask follows the stable channel)
brew upgrade claude-code@latest
# Windows WinGet
winget upgrade Anthropic.ClaudeCode
# check
claude --version
# 2.1.317 (Claude Code)
claude --version sollte 2.1.317 oder höher zeigen. Der Homebrew-Cask claude-code folgt dem Stable-Kanal, meist etwa eine Woche hinter latest; mit claude-code@latest bekommen Sie diesen Fix sofort. In einer Sitzung zeigt /status, ob Auto mode server auf Enabled steht.
ANTHROPIC_BASE_URL und Schlüssel setzen
Erstellen Sie zuerst einen API-Schlüssel bei aicodewith:
API Key erstellen für Claude Code →
macOS / Linux:
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="IHR_API_KEY"
claude --permission-mode auto
Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "https://api.aicodewith.ai"
$env:ANTHROPIC_AUTH_TOKEN = "IHR_API_KEY"
claude --permission-mode auto
Dauerhaft geht es über ~/.claude/settings.json. permissions.defaultMode auf auto wirkt nur in den Benutzereinstellungen, nicht in der .claude/settings.json eines Projekts (laut Dokumentation):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
"ANTHROPIC_AUTH_TOKEN": "IHR_API_KEY"
},
"permissions": {
"defaultMode": "auto"
}
}
Weitere Optionen (dauerhafte Windows-Variablen, Modelle) in Claude Code mit einer Drittanbieter-API verbinden.
Auto-Modus einschalten
- Beim Start:
claude --permission-mode auto. - In einer Sitzung:
Shift+Tabdrücken; die Statusleiste zeigt⏵⏵ auto mode on. - Nicht interaktiv (
claude -p): Nach dem CHANGELOG-Eintrag zu 2.1.302 startet es bei Drittanbietern, ohne Telemetrie oder bei frischer Installation indefault, außer Sie übergeben--permission-mode auto. - Modell des lokalen Klassifikators ändern:
CLAUDE_CODE_AUTO_MODE_MODEL(ab 2.1.302); die Serverprüfung bleibt davon unberührt.
Wenn Sie noch nicht aktualisieren können und Ihr Gateway die Prüfung ablehnt, schalten Sie die Serverprüfung ab und nutzen nur den lokalen Klassifikator:
{SERVER0}
Auf 2.1.316 mit den simulierten 403- und 422-Gateways getestet: Die Aufgabe lief beide Male durch.
Fehlertabelle
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
| API Error: 403 ... in jeder Runde, davor Failed to authenticate; manueller Modus funktioniert | Das Gateway lehnt die serverseitige Sicherheitsprüfung des Auto-Modus ab | Auf 2.1.317 aktualisieren oder CLAUDE_CODE_AUTO_MODE_SERVER=0 setzen |
| API Error: 422 ... in jeder Runde, Meldung nennt safeguards | Das Gateway prüft den Body streng und lehnt das Feld safeguards ab | Wie oben, oder das Gateway das Feld durchreichen lassen |
| 403 mit apiKeyHelper | In 2.1.317 unverändert, weiter als Authentifizierungsfehler behandelt | safeguards und Beta-Header durchreichen lassen oder CLAUDE_CODE_AUTO_MODE_SERVER=0 |
| 403 durch Regions- oder Netzwerksperre | Regionale oder Netzwerkbeschränkung | Ab 2.1.317 erklärt die Meldung die Sperre statt eines Anmeldefehlers; Netzwerk wechseln oder ein erreichbares Gateway nutzen |
| Aktion gestoppt, Sicherheitsprüfung ohne Urteil | Der Server hat für die Aktion kein Urteil geliefert | Ab 2.1.314 nicht mehr als blockiert gemeldet; ab 2.1.317 gibt es auch für Subagenten einen Hinweis. Laut Dokumentation stoppen zehn Antworten ohne Urteil in Folge die Runde |
| 403 / 401 in jeder Runde, auch im manuellen Modus | Ungültiger Schlüssel oder falsche Base URL | Schlüssel und ANTHROPIC_BASE_URL prüfen; kein Problem des Auto-Modus |
FAQ
Ich nutze aicodewith. Muss ich aktualisieren?
In unseren Tests liefen 2.1.316 und 2.1.317 im Auto-Modus mit unserer API problemlos, diesen Fehler werden Sie also nicht sehen. 2.1.317 enthält weitere Fixes, ein Update lohnt sich trotzdem.
Ist der Auto-Modus nach 2.1.317 noch sicher?
Aktionen werden weiter geprüft. Nur der Schritt „Server fragen“ fällt weg; der lokale Klassifikator prüft jede betroffene Aktion, und unsere Logs zeigen eine lokale Prüfung pro Bash-Befehl.
Warum erscheint der 403 als „Failed to authenticate“?
Ältere Versionen behandelten einen 403 auf die Prüfung des Auto-Modus als Authentifizierungsfehler. Wenn Ihr Schlüssel funktioniert, der manuelle Modus läuft und der 403 nur im Auto-Modus auftritt, ist das sehr wahrscheinlich die Ursache.
Wie bestätige ich, dass es dieses Problem ist?
Einmal mit --debug-file starten und im Log nach server-classifier und API error suchen. Nennt der Fehler safeguards oder schreibt 2.1.317 „sending it once more without that header and the safeguards field“, lehnt das Gateway die Prüfung ab.
Hat Codex etwas Vergleichbares?
Codex steuert die Befehlsausführung über Sandbox und Freigaberichtlinie; siehe Codex Sandbox und /permissions einrichten.



