Gateway-Fehlerbehebung
Diese Seite ist das detaillierte Runbook. Beginnen Sie unter /help/troubleshooting, wenn Sie zuerst den schnellen Triage-Ablauf möchten.Befehlsabfolge
Führen Sie diese Befehle zuerst in dieser Reihenfolge aus:openclaw gateway statuszeigtRuntime: runningundRPC probe: ok.openclaw doctormeldet keine blockierenden Konfigurations-/Serviceprobleme.openclaw channels status --probezeigt den Live-Transportstatus pro Konto und, wo unterstützt, Probe-/Audit-Ergebnisse wieworksoderaudit ok.
Anthropic 429 zusätzlicher Verbrauch für langen Kontext erforderlich
Verwenden Sie diesen Abschnitt, wenn Logs/Fehler Folgendes enthalten:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Das ausgewählte Anthropic-Opus-/Sonnet-Modell hat
params.context1m: true. - Die aktuelle Anthropic-Anmeldung ist nicht für die Nutzung mit langem Kontext berechtigt.
- Anfragen schlagen nur bei langen Sitzungen/Modelläufen fehl, die den 1M-Beta-Pfad benötigen.
- Deaktivieren Sie
context1mfür dieses Modell, um auf das normale Kontextfenster zurückzufallen. - Verwenden Sie eine Anthropic-Anmeldung, die für Anfragen mit langem Kontext berechtigt ist, oder wechseln Sie zu einem Anthropic-API-Schlüssel.
- Konfigurieren Sie Fallback-Modelle, damit Läufe fortgesetzt werden, wenn Anthropic-Anfragen mit langem Kontext abgelehnt werden.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
Lokales OpenAI-kompatibles Backend besteht direkte Probes, aber Agent-Läufe schlagen fehl
Verwenden Sie diesen Abschnitt, wenn:curl ... /v1/modelsfunktioniert- kleine direkte
/v1/chat/completions-Aufrufe funktionieren - OpenClaw-Modelläufe nur bei normalen Agent-Turns fehlschlagen
- Direkte kleine Aufrufe sind erfolgreich, aber OpenClaw-Läufe schlagen nur bei größeren Prompts fehl
- Backend-Fehler, bei denen
messages[].contenteinen String erwartet - Backend-Abstürze, die nur bei größeren Prompt-Token-Zahlen oder vollständigen Agent- Laufzeit-Prompts auftreten
messages[...].content: invalid type: sequence, expected a string→ das Backend lehnt strukturierte Chat-Completions-Inhaltsteile ab. Behebung: setzen Siemodels.providers.<provider>.models[].compat.requiresStringContent: true.- Direkte kleine Anfragen sind erfolgreich, aber OpenClaw-Agent-Läufe schlagen mit Backend-/Modell-
Abstürzen fehl (zum Beispiel Gemma auf einigen
inferrs-Builds) → der OpenClaw-Transport ist wahrscheinlich bereits korrekt; das Backend scheitert an der größeren Agent-Laufzeit- Prompt-Form. - Die Fehler nehmen ab, nachdem Tools deaktiviert wurden, verschwinden aber nicht → Tool-Schemas waren Teil des Drucks, aber das verbleibende Problem ist weiterhin eine vorgelagerte Modell-/Server-Kapazität oder ein Backend-Fehler.
- Setzen Sie
compat.requiresStringContent: truefür Chat-Completions-Backends, die nur Strings unterstützen. - Setzen Sie
compat.supportsTools: falsefür Modelle/Backends, die die OpenClaw-Tool-Schema-Oberfläche nicht zuverlässig verarbeiten können. - Reduzieren Sie den Prompt-Druck, wo möglich: kleinerer Workspace-Bootstrap, kürzere Sitzungshistorie, leichteres lokales Modell oder ein Backend mit stärkerer Unterstützung für langen Kontext.
- Wenn direkte kleine Anfragen weiterhin erfolgreich sind, während OpenClaw-Agent-Turns im Backend trotzdem abstürzen, behandeln Sie dies als vorgelagerte Server-/Modellbeschränkung und reichen Sie dort eine Reproduktion mit der akzeptierten Payload-Form ein.
- /gateway/local-models
- /gateway/configuration#models
- /gateway/configuration-reference#openai-compatible-endpoints
Keine Antworten
Wenn Channels aktiv sind, aber nichts antwortet, prüfen Sie Routing und Richtlinien, bevor Sie irgendetwas neu verbinden.- Pairing steht für DM-Absender aus.
- Gating für Gruppenerwähnungen (
requireMention,mentionPatterns). - Nichtübereinstimmungen bei der Channel-/Gruppen-Allowlist.
drop guild message (mention required→ Gruppennachricht wird ignoriert, bis eine Erwähnung erfolgt.pairing request→ der Absender benötigt eine Genehmigung.blocked/allowlist→ Absender/Channel wurde durch eine Richtlinie gefiltert.
Dashboard-Control-UI-Konnektivität
Wenn Dashboard/Control UI keine Verbindung herstellt, prüfen Sie URL, Auth-Modus und Annahmen zum sicheren Kontext.- Korrekte Probe-URL und Dashboard-URL.
- Nichtübereinstimmung bei Auth-Modus/Token zwischen Client und Gateway.
- HTTP-Nutzung, wo Geräteidentität erforderlich ist.
device identity required→ unsicherer Kontext oder fehlende Geräteauthentifizierung.origin not allowed→ Browser-Originist nicht ingateway.controlUi.allowedOriginsenthalten (oder Sie verbinden sich von einer Browser-Origin, die nicht loopback ist, ohne explizite Allowlist).device nonce required/device nonce mismatch→ der Client schließt den herausforderungsbasierten Geräteauthentifizierungsablauf nicht ab (connect.challenge+device.nonce).device signature invalid/device signature expired→ der Client hat die falsche Payload (oder einen veralteten Zeitstempel) für den aktuellen Handshake signiert.AUTH_TOKEN_MISMATCHmitcanRetryWithDeviceToken=true→ der Client kann einen vertrauenswürdigen Wiederholungsversuch mit zwischengespeichertem Gerätetoken ausführen.- Dieser Wiederholungsversuch mit zwischengespeichertem Token verwendet erneut die zwischengespeicherte Scope-Menge, die mit dem gekoppelten
Gerätetoken gespeichert wurde. Aufrufer mit explizitem
deviceToken/ explizitenscopesbehalten stattdessen ihre angeforderte Scope-Menge bei. - Außerhalb dieses Wiederholungswegs ist die Priorität für die Verbindungsauthentifizierung explizit
gemeinsames Token/Passwort zuerst, dann explizites
deviceToken, dann gespeichertes Gerätetoken, dann Bootstrap-Token. - Auf dem asynchronen Tailscale-Serve-Control-UI-Pfad werden fehlgeschlagene Versuche für dieselbe
{scope, ip}serialisiert, bevor der Limiter den Fehler erfasst. Zwei fehlerhafte gleichzeitige Wiederholungsversuche desselben Clients können daher beim zweiten Versuchretry laterstatt zweier einfacher Nichtübereinstimmungen auslösen. too many failed authentication attempts (retry later)von einem loopback-Client mit Browser-Origin → wiederholte Fehler von derselben normalisiertenOriginwerden vorübergehend ausgesperrt; eine andere localhost-Origin verwendet einen separaten Bucket.- Wiederholtes
unauthorizednach diesem Wiederholungsversuch → Drift zwischen gemeinsamem Token/Gerätetoken; aktualisieren Sie die Token-Konfiguration und genehmigen/rotieren Sie das Gerätetoken bei Bedarf erneut. gateway connect failed:→ falscher Host/Port/falsches URL-Ziel.
Schnelle Zuordnung von Auth-Detailcodes
Verwenden Sieerror.details.code aus der fehlgeschlagenen connect-Antwort, um die nächste Maßnahme zu bestimmen:
| Detail code | Bedeutung | Empfohlene Maßnahme |
|---|---|---|
AUTH_TOKEN_MISSING | Der Client hat kein erforderliches gemeinsames Token gesendet. | Fügen Sie das Token im Client ein/setzen Sie es und versuchen Sie es erneut. Für Dashboard-Pfade: openclaw config get gateway.auth.token und dann in die Control-UI-Einstellungen einfügen. |
AUTH_TOKEN_MISMATCH | Das gemeinsame Token stimmte nicht mit dem Gateway-Auth-Token überein. | Wenn canRetryWithDeviceToken=true, erlauben Sie einen vertrauenswürdigen Wiederholungsversuch. Wiederholungsversuche mit zwischengespeichertem Token verwenden erneut gespeicherte genehmigte Scopes; Aufrufer mit explizitem deviceToken / scopes behalten die angeforderten Scopes. Wenn es weiterhin fehlschlägt, führen Sie die Checkliste zur Behebung von Token-Drift aus. |
AUTH_DEVICE_TOKEN_MISMATCH | Das zwischengespeicherte gerätespezifische Token ist veraltet oder widerrufen. | Rotieren/genehmigen Sie das Gerätetoken mit devices CLI erneut und stellen Sie die Verbindung dann erneut her. |
PAIRING_REQUIRED | Die Geräteidentität ist bekannt, aber nicht für diese Rolle genehmigt. | Genehmigen Sie die ausstehende Anfrage: openclaw devices list und dann openclaw devices approve <requestId>. |
- auf
connect.challengewartet - die challenge-gebundene Payload signiert
connect.params.device.noncemit derselben Challenge-Nonce sendet
openclaw devices rotate / revoke / remove unerwartet verweigert wird:
- Sitzungen mit gekoppeltem Gerätetoken können nur ihr eigenes Gerät verwalten, es sei denn, der
Aufrufer hat zusätzlich
operator.admin openclaw devices rotate --scope ...kann nur Operator-Scopes anfordern, die die Aufrufer-Sitzung bereits besitzt
- /web/control-ui
- /gateway/configuration (Gateway-Auth-Modi)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
Gateway-Service läuft nicht
Verwenden Sie diesen Abschnitt, wenn der Service installiert ist, der Prozess aber nicht dauerhaft läuft.Runtime: stoppedmit Hinweisen zum Beenden.- Nichtübereinstimmung bei der Service-Konfiguration (
Config (cli)vsConfig (service)). - Port-/Listener-Konflikte.
- Zusätzliche launchd-/systemd-/schtasks-Installationen bei Verwendung von
--deep. - Bereinigungshinweise für
Other gateway-like services detected (best effort).
Gateway start blocked: set gateway.mode=localoderexisting config is missing gateway.mode→ der lokale Gateway-Modus ist nicht aktiviert, oder die Konfigurationsdatei wurde überschrieben und hatgateway.modeverloren. Behebung: setzen Siegateway.mode="local"in Ihrer Konfiguration oder führen Sieopenclaw onboard --mode local/openclaw setuperneut aus, um die erwartete Konfiguration für den lokalen Modus wiederherzustellen. Wenn Sie OpenClaw über Podman ausführen, ist der Standard-Konfigurationspfad~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ Nicht-loopback-Bind ohne gültigen Gateway-Auth-Pfad (Token/Passwort oder Trusted-Proxy, sofern konfiguriert).another gateway instance is already listening/EADDRINUSE→ Portkonflikt.Other gateway-like services detected (best effort)→ veraltete oder parallele launchd-/systemd-/schtasks-Units existieren. Die meisten Setups sollten ein Gateway pro Maschine beibehalten; wenn Sie tatsächlich mehr als eines benötigen, isolieren Sie Ports + Konfiguration/Status/Workspace. Siehe /gateway#multiple-gateways-same-host.
Gateway-Probe-Warnungen
Verwenden Sie diesen Abschnitt, wennopenclaw gateway probe etwas erreicht, aber trotzdem einen Warnblock ausgibt.
warnings[].codeundprimaryTargetIdin der JSON-Ausgabe.- Ob sich die Warnung auf SSH-Fallback, mehrere Gateways, fehlende Scopes oder nicht aufgelöste Auth-Refs bezieht.
SSH tunnel failed to start; falling back to direct probes.→ die SSH-Einrichtung ist fehlgeschlagen, aber der Befehl hat trotzdem direkte konfigurierte/loopback-Ziele versucht.multiple reachable gateways detected→ mehr als ein Ziel hat geantwortet. Das bedeutet normalerweise ein beabsichtigtes Multi-Gateway-Setup oder veraltete/duplizierte Listener.Probe diagnostics are limited by gateway scopes (missing operator.read)→ die Verbindung hat funktioniert, aber die Detail-RPC ist durch Scopes eingeschränkt; koppeln Sie die Geräteidentität oder verwenden Sie Anmeldedaten mitoperator.read.- nicht aufgelöster SecretRef-Warntext zu
gateway.auth.*/gateway.remote.*→ Auth-Material war in diesem Befehlspfad für das fehlgeschlagene Ziel nicht verfügbar.
Channel verbunden, aber Nachrichten fließen nicht
Wenn der Channel-Status verbunden ist, der Nachrichtenfluss aber tot ist, konzentrieren Sie sich auf Richtlinien, Berechtigungen und channelspezifische Zustellregeln.- DM-Richtlinie (
pairing,allowlist,open,disabled). - Gruppen-Allowlist und Anforderungen an Erwähnungen.
- Fehlende Channel-API-Berechtigungen/-Scopes.
mention required→ Nachricht wird durch die Gruppen-Erwähnungsrichtlinie ignoriert.pairing/ ausstehende Genehmigungsspuren → der Absender ist nicht genehmigt.missing_scope,not_in_channel,Forbidden,401/403→ Problem mit Channel-Auth/Berechtigungen.
Cron- und Heartbeat-Zustellung
Wenn Cron oder Heartbeat nicht ausgeführt wurde oder nicht zugestellt wurde, prüfen Sie zuerst den Scheduler-Status und dann das Zustellziel.- Cron ist aktiviert und die nächste Aufweckzeit ist vorhanden.
- Status des Job-Ausführungsverlaufs (
ok,skipped,error). - Heartbeat-Überspringgründe (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ Cron ist deaktiviert.cron: timer tick failed→ Scheduler-Tick ist fehlgeschlagen; prüfen Sie Datei-/Log-/Laufzeitfehler.heartbeat skippedmitreason=quiet-hours→ außerhalb des Zeitfensters für aktive Stunden.heartbeat skippedmitreason=empty-heartbeat-file→HEARTBEAT.mdexistiert, enthält aber nur Leerzeilen / Markdown-Überschriften, daher überspringt OpenClaw den Modellaufruf.heartbeat skippedmitreason=no-tasks-due→HEARTBEAT.mdenthält einentasks:-Block, aber keine der Aufgaben ist bei diesem Tick fällig.heartbeat: unknown accountId→ ungültige Konto-ID für das Heartbeat-Zustellziel.heartbeat skippedmitreason=dm-blocked→ das Heartbeat-Ziel wurde in ein Ziel im DM-Stil aufgelöst, währendagents.defaults.heartbeat.directPolicy(oder die agentenspezifische Überschreibung) aufblockgesetzt ist.
Gekoppeltes Node-Tool schlägt fehl
Wenn ein Node gekoppelt ist, Tools aber fehlschlagen, isolieren Sie Vordergrund-, Berechtigungs- und Genehmigungsstatus.- Node ist online und hat die erwarteten Fähigkeiten.
- OS-Berechtigungen für Kamera/Mikrofon/Standort/Bildschirm.
- Exec-Genehmigungen und Allowlist-Status.
NODE_BACKGROUND_UNAVAILABLE→ die Node-App muss im Vordergrund sein.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ fehlende OS-Berechtigung.SYSTEM_RUN_DENIED: approval required→ Exec-Genehmigung steht aus.SYSTEM_RUN_DENIED: allowlist miss→ Befehl wurde durch die Allowlist blockiert.
Browser-Tool schlägt fehl
Verwenden Sie diesen Abschnitt, wenn Browser-Tool-Aktionen fehlschlagen, obwohl das Gateway selbst gesund ist.- Ob
plugins.allowgesetzt ist undbrowserenthält. - Gültiger Pfad zur Browser-Executable.
- Erreichbarkeit des CDP-Profils.
- Verfügbarkeit von lokalem Chrome für
existing-session-/user-Profile.
unknown command "browser"oderunknown command 'browser'→ das gebündelte Browser-Plugin ist durchplugins.allowausgeschlossen.- Browser-Tool fehlt / ist nicht verfügbar, obwohl
browser.enabled=true→plugins.allowschließtbrowseraus, daher wurde das Plugin nie geladen. Failed to start Chrome CDP on port→ Browser-Prozess konnte nicht gestartet werden.browser.executablePath not found→ der konfigurierte Pfad ist ungültig.browser.cdpUrl must be http(s) or ws(s)→ die konfigurierte CDP-URL verwendet ein nicht unterstütztes Schema wiefile:oderftp:.browser.cdpUrl has invalid port→ die konfigurierte CDP-URL hat einen fehlerhaften oder ungültigen Port.No Chrome tabs found for profile="user"→ das Chrome-MCP-Attach-Profil hat keine geöffneten lokalen Chrome-Tabs.Remote CDP for profile "<name>" is not reachable→ der konfigurierte Remote-CDP-Endpunkt ist vom Gateway-Host aus nicht erreichbar.Browser attachOnly is enabled ... not reachableoderBrowser attachOnly is enabled and CDP websocket ... is not reachable→ das Attach-only-Profil hat kein erreichbares Ziel, oder der HTTP-Endpunkt hat geantwortet, aber der CDP-WebSocket konnte trotzdem nicht geöffnet werden.Playwright is not available in this gateway build; '<feature>' is unsupported.→ der aktuelle Gateway-Install enthält nicht das vollständige Playwright-Paket; ARIA-Snapshots und einfache Seitenscreenshots können weiterhin funktionieren, aber Navigation, AI-Snapshots, Element-Screenshots per CSS-Selektor und PDF-Export bleiben nicht verfügbar.fullPage is not supported for element screenshots→ die Screenshot-Anfrage hat--full-pagemit--refoder--elementkombiniert.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ Screenshot-Aufrufe von Chrome MCP /existing-sessionmüssen Seitenerfassung oder einen Snapshot---refverwenden, nicht CSS---element.existing-session file uploads do not support element selectors; use ref/inputRef.→ Upload-Hooks von Chrome MCP benötigen Snapshot-Refs, keine CSS-Selektoren.existing-session file uploads currently support one file at a time.→ senden Sie bei Chrome-MCP-Profilen einen Upload pro Aufruf.existing-session dialog handling does not support timeoutMs.→ Dialog-Hooks auf Chrome-MCP-Profilen unterstützen keine Timeout-Überschreibungen.response body is not supported for existing-session profiles yet.→responsebodyerfordert weiterhin einen verwalteten Browser oder ein rohes CDP-Profil.- veraltete Überschreibungen für Viewport / Dark Mode / Gebietsschema / Offline-Modus auf Attach-only- oder Remote-CDP-Profilen → führen Sie
openclaw browser stop --browser-profile <name>aus, um die aktive Steuersitzung zu schließen und den Playwright-/CDP-Emulationsstatus freizugeben, ohne das gesamte Gateway neu zu starten.
Wenn Sie ein Upgrade durchgeführt haben und plötzlich etwas nicht mehr funktioniert
Die meisten Probleme nach einem Upgrade sind Konfigurations-Drift oder jetzt erzwungene strengere Standardwerte.1) Verhalten von Auth- und URL-Überschreibungen hat sich geändert
- Wenn
gateway.mode=remote, können CLI-Aufrufe auf remote zielen, während Ihr lokaler Service in Ordnung ist. - Explizite
--url-Aufrufe greifen nicht auf gespeicherte Anmeldedaten zurück.
gateway connect failed:→ falsches URL-Ziel.unauthorized→ Endpunkt erreichbar, aber falsche Authentifizierung.
2) Bind- und Auth-Schutzmechanismen sind strenger
- Nicht-loopback-Binds (
lan,tailnet,custom) benötigen einen gültigen Gateway-Auth-Pfad: gemeinsame Token-/Passwort-Authentifizierung oder eine korrekt konfigurierte nicht-loopback-trusted-proxy-Bereitstellung. - Alte Schlüssel wie
gateway.tokenersetzengateway.auth.tokennicht.
refusing to bind gateway ... without auth→ Nicht-loopback-Bind ohne gültigen Gateway-Auth-Pfad.RPC probe: failedwährend die Runtime läuft → Gateway lebt, ist aber mit der aktuellen Auth/URL nicht zugänglich.
3) Pairing- und Geräteidentitätsstatus haben sich geändert
- Ausstehende Gerätegenehmigungen für Dashboard/Nodes.
- Ausstehende DM-Pairing-Genehmigungen nach Richtlinien- oder Identitätsänderungen.
device identity required→ Geräteauthentifizierung ist nicht erfüllt.pairing required→ Absender/Gerät muss genehmigt werden.