Gateway
Fehlerbehebung
Diese Seite ist das ausführliche Runbook. Beginnen Sie mit /help/troubleshooting, wenn Sie zuerst den schnellen Triage-Ablauf nutzen möchten.
Befehlsleiter
Führen Sie diese zuerst in dieser Reihenfolge aus:
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeErwartete gesunde Signale:
openclaw gateway statuszeigtRuntime: running,Connectivity probe: okund eine ZeileCapability: ....openclaw doctormeldet keine blockierenden Konfigurations- oder Dienstprobleme.openclaw channels status --probezeigt den Live-Transportstatus pro Konto und, sofern unterstützt, Probe-/Audit-Ergebnisse wieworksoderaudit ok.
Nach einem Update
Verwenden Sie dies, wenn ein Update abgeschlossen ist, der Gateway aber nicht läuft, Channels leer sind oder Modellaufrufe mit 401-Fehlern fehlschlagen.
openclaw status --allopenclaw update status --jsonopenclaw gateway status --deepopenclaw doctor --fixopenclaw gateway restartAchten Sie auf:
Update restartinopenclaw status/openclaw status --all. Ausstehende oder fehlgeschlagene Übergaben enthalten den nächsten auszuführenden Befehl.plugin load failed: dependency tree corrupted; run openclaw doctor --fixunter Channels. Das bedeutet, dass die Channel-Konfiguration noch vorhanden ist, die Plugin- Registrierung aber fehlgeschlagen ist, bevor der Channel geladen werden konnte.- Provider-401-Fehler nach erneuter Authentifizierung.
openclaw doctor --fixprüft auf veraltete OAuth-Auth-Schatten pro Agent und entfernt die alten Kopien, sodass alle Agents das aktuelle gemeinsame Profil auflösen.
Split-Brain-Installationen und Schutz für neuere Konfigurationen
Verwenden Sie dies, wenn ein Gateway-Dienst nach einem Update unerwartet stoppt oder Logs zeigen, dass ein openclaw-Binary älter ist als die Version, die zuletzt openclaw.json geschrieben hat.
OpenClaw versieht Konfigurationsschreibvorgänge mit meta.lastTouchedVersion. Schreibgeschützte Befehle können weiterhin eine Konfiguration prüfen, die von einem neueren OpenClaw geschrieben wurde, aber Prozess- und Dienstmutationen verweigern die Fortsetzung mit einem älteren Binary. Blockierte Aktionen umfassen Start, Stopp, Neustart und Deinstallation des Gateway-Dienstes, erzwungene Dienstneuinstallation, Gateway-Start im Dienstmodus und gateway --force-Portbereinigung.
which openclawopenclaw --versionopenclaw gateway status --deepopenclaw config get meta.lastTouchedVersionPATH korrigieren
Korrigieren Sie PATH, sodass openclaw auf die neuere Installation aufgelöst wird, und führen Sie die Aktion dann erneut aus.
Gateway-Dienst neu installieren
Installieren Sie den beabsichtigten Gateway-Dienst aus der neueren Installation neu:
openclaw gateway install --forceopenclaw gateway restartVeraltete Wrapper entfernen
Entfernen Sie veraltete Systempakete oder alte Wrapper-Einträge, die weiterhin auf ein altes openclaw-Binary zeigen.
Protokollkonflikt nach Rollback
Verwenden Sie dies, wenn Logs nach einem Downgrade oder Rollback von OpenClaw weiterhin protocol mismatch ausgeben. Das bedeutet, dass ein älterer Gateway läuft, aber ein neuerer lokaler Clientprozess weiterhin versucht, sich mit einem Protokollbereich neu zu verbinden, den der ältere Gateway nicht sprechen kann.
openclaw --versionwhich -a openclawopenclaw gateway status --deepopenclaw doctor --deepopenclaw logs --followAchten Sie auf:
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>in Gateway-Logs.Established clients:inopenclaw gateway status --deepoderGateway clientsinopenclaw doctor --deep. Dies listet aktive TCP-Clients auf, die mit dem Gateway-Port verbunden sind, einschließlich PIDs und Befehlszeilen, wenn das Betriebssystem dies erlaubt.- Einen Clientprozess, dessen Befehlszeile auf die neuere OpenClaw-Installation oder den Wrapper zeigt, von der bzw. dem Sie zurückgerollt haben.
Behebung:
- Stoppen oder starten Sie den veralteten OpenClaw-Clientprozess neu, der von
gateway status --deepangezeigt wird. - Starten Sie Apps oder Wrapper neu, die OpenClaw einbetten, etwa lokale Dashboards, Editoren, App-Server-Helfer oder lange laufende
openclaw logs --follow-Shells. - Führen Sie
openclaw gateway status --deepoderopenclaw doctor --deeperneut aus und bestätigen Sie, dass die veraltete Client-PID verschwunden ist.
Bringen Sie einen älteren Gateway nicht dazu, ein neueres inkompatibles Protokoll zu akzeptieren. Protokoll-Bumps schützen den Wire-Vertrag; Rollback-Wiederherstellung ist ein Prozess-/Versionsbereinigungsproblem.
Skill-Symlink wegen Pfad-Ausbruch übersprungen
Verwenden Sie dies, wenn Logs Folgendes enthalten:
Skipping escaped skill path outside its configured root: ... reason=symlink-escapeOpenClaw behandelt jeden Skill-Root als Containment-Grenze. Ein Symlink unter
~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills oder
~/.openclaw/skills wird übersprungen, wenn sein reales Ziel außerhalb dieses Roots aufgelöst wird,
es sei denn, das Ziel ist ausdrücklich vertrauenswürdig.
Prüfen Sie den Link:
ls -l ~/.agents/skills/<name>realpath ~/.agents/skills/<name>openclaw config get skills.loadWenn das Ziel beabsichtigt ist, konfigurieren Sie sowohl den direkten Skill-Root als auch das erlaubte Symlink-Ziel:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Starten Sie anschließend eine neue Sitzung oder warten Sie, bis der Skills-Watcher aktualisiert. Starten Sie den Gateway neu, wenn der laufende Prozess älter als die Konfigurationsänderung ist.
Verwenden Sie keine breiten Ziele wie ~, / oder einen ganzen synchronisierten Projektordner.
Halten Sie allowSymlinkTargets auf den realen Skill-Root beschränkt, der vertrauenswürdige
SKILL.md-Verzeichnisse enthält.
Wenn Skill Workshop apply ebenfalls durch diese vertrauenswürdigen symlinkten
Workspace-Skill-Pfade schreiben soll, aktivieren Sie skills.workshop.allowSymlinkTargetWrites. Lassen Sie
es für schreibgeschützte gemeinsame Skill-Roots deaktiviert.
Verwandt:
Anthropic 429: Zusätzliche Nutzung für langen Kontext erforderlich
Verwenden Sie dies, wenn Logs/Fehler Folgendes enthalten: HTTP 429: rate_limit_error: Extra usage is required for long context requests.
openclaw logs --followopenclaw models statusopenclaw config get agents.defaults.modelsAchten Sie auf:
- Das ausgewählte Anthropic-Modell ist ein GA-fähiges 1M-Claude-4.x-Modell, oder das Modell hat das veraltete
params.context1m: true. - Die aktuellen Anthropic-Anmeldedaten sind nicht für Long-Context-Nutzung berechtigt.
- Anfragen schlagen nur bei langen Sitzungen/Modellläufen fehl, die den 1M-Kontextpfad benötigen.
Behebungsoptionen:
Standard-Kontextfenster verwenden
Wechseln Sie zu einem Modell mit Standardfenster, oder entfernen Sie veraltetes context1m aus älterer
Modellkonfiguration, die nicht GA-fähig für 1M-Kontext ist.
Berechtigte Anmeldedaten verwenden
Verwenden Sie Anthropic-Anmeldedaten, die für Long-Context-Anfragen berechtigt sind, oder wechseln Sie zu einem Anthropic-API-Schlüssel.
Fallback-Modelle konfigurieren
Konfigurieren Sie Fallback-Modelle, damit Läufe fortgesetzt werden, wenn Anthropic-Long-Context-Anfragen abgelehnt werden.
Verwandt:
Upstream-403-blockierte Antworten
Verwenden Sie dies, wenn ein Upstream-LLM-Provider ein generisches 403 zurückgibt, etwa
Your request was blocked.
Gehen Sie nicht davon aus, dass dies immer ein OpenClaw-Konfigurationsproblem ist. Die Antwort kann von einer Upstream-Sicherheitsschicht stammen, etwa einem CDN, einer WAF, einer Bot-Management-Regel oder einem Reverse Proxy vor einem OpenAI-kompatiblen Endpunkt.
openclaw statusopenclaw gateway statusopenclaw logs --followAchten Sie auf:
- mehrere Modelle unter demselben Provider schlagen auf die gleiche Weise fehl
- HTML oder generischer Sicherheitstext statt eines normalen Provider-API-Fehlers
- Provider-seitige Sicherheitsereignisse zur gleichen Anfragezeit
- eine winzige direkte
curl-Probe ist erfolgreich, während normale SDK-förmige Anfragen fehlschlagen
Beheben Sie zuerst die Provider-seitige Filterung, wenn die Belege auf eine WAF-/CDN- Blockierung hindeuten. Bevorzugen Sie eine eng begrenzte Allow- oder Skip-Regel für den API-Pfad, den OpenClaw verwendet, und vermeiden Sie es, den Schutz für die ganze Site zu deaktivieren.
Verwandt:
Lokales OpenAI-kompatibles Backend besteht direkte Proben, aber Agent-Läufe schlagen fehl
Verwenden Sie dies, wenn:
curl ... /v1/modelsfunktioniert- winzige direkte
/v1/chat/completions-Aufrufe funktionieren - OpenClaw-Modellläufe nur bei normalen Agent-Turns fehlschlagen
curl http://127.0.0.1:1234/v1/modelscurl http://127.0.0.1:1234/v1/chat/completions \ -H 'content-type: application/json' \ -d '{"model":"<id>","messages":[{"role":"user","content":"hi"}],"stream":false}'openclaw infer model run --model <provider/model> --prompt "hi" --jsonopenclaw logs --followAchten Sie auf:
- direkte winzige Aufrufe sind erfolgreich, aber OpenClaw-Läufe schlagen nur bei größeren Prompts fehl
model_not_found- oder 404-Fehler, obwohl direkte/v1/chat/completionsmit derselben nackten Modell-ID funktionieren- Backend-Fehler darüber, dass
messages[].contenteinen String erwartet - sporadische Warnungen
incomplete turn detected ... stopReason=stop payloads=0mit einem OpenAI-kompatiblen lokalen Backend - Backend-Abstürze, die nur bei größeren Prompt-Token-Zahlen oder vollständigen Agent-Runtime-Prompts auftreten
Häufige Signaturen
model_not_foundmit einem lokalen MLX-/vLLM-artigen Server → prüfen Sie, dassbaseUrl/v1enthält,apifür/v1/chat/completions-Backends"openai-completions"ist undmodels.providers.<provider>.models[].iddie nackte Provider-lokale ID ist. Wählen Sie es einmal mit dem Provider-Präfix aus, zum Beispielmlx/mlx-community/Qwen3-30B-A3B-6bit; behalten Sie den Katalogeintrag alsmlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string→ Backend lehnt strukturierte Chat Completions-Inhaltsteile ab. Behebung: setzen Siemodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keysoder erlaubte Nachrichtenschlüssel wie["role","content"]→ Backend lehnt OpenAI-artige Replay-Metadaten auf Chat Completions-Nachrichten ab. Behebung: setzen Siemodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0→ das Backend hat die Chat Completions-Anfrage abgeschlossen, aber keinen für Benutzer sichtbaren Assistant-Text für diesen Turn zurückgegeben. OpenClaw wiederholt replay-sichere leere OpenAI-kompatible Turns einmal; anhaltende Fehler bedeuten meist, dass das Backend leere/nicht-textuelle Inhalte ausgibt oder Final-Answer-Text unterdrückt.- direkte winzige Anfragen sind erfolgreich, aber OpenClaw-Agent-Läufe schlagen mit Backend-/Modellabstürzen fehl (zum Beispiel Gemma auf einigen
inferrs-Builds) → der OpenClaw-Transport ist wahrscheinlich bereits korrekt; das Backend scheitert an der größeren Agent-Runtime-Prompt-Form. - Fehler werden nach Deaktivieren von Tools kleiner, verschwinden aber nicht → Tool-Schemas waren Teil des Drucks, aber das verbleibende Problem ist weiterhin Upstream-Modell-/Serverkapazität oder ein Backend-Bug.
Behebungsoptionen
- Setzen Sie
compat.requiresStringContent: truefür string-only Chat Completions-Backends. - Setzen Sie
compat.strictMessageKeys: truefür strikte Chat Completions-Backends, die auf jeder Nachricht nurroleundcontentakzeptieren. - Setzen Sie
compat.supportsTools: falsefür Modelle/Backends, die OpenClaws Tool-Schema-Oberfläche nicht zuverlässig verarbeiten können. - Senken Sie den Prompt-Druck, wo möglich: kleinerer Workspace-Bootstrap, kürzere Sitzungshistorie, leichteres lokales Modell oder ein Backend mit stärkerer Long-Context-Unterstützung.
- Wenn winzige direkte Anfragen weiterhin funktionieren, während OpenClaw-Agent-Turns noch im Backend abstürzen, behandeln Sie dies als Upstream-Server-/Modellbeschränkung und reichen Sie dort eine Repro mit der akzeptierten Payload-Form ein.
Verwandt:
Keine Antworten
Wenn Channels aktiv sind, aber nichts antwortet, prüfen Sie Routing und Richtlinien, bevor Sie etwas neu verbinden.
openclaw statusopenclaw channels status --probeopenclaw pairing list --channel <channel> [--account <id>]openclaw config get channelsopenclaw logs --followAchten Sie auf:
- Ausstehendes Pairing für DM-Absender.
- Erwähnungs-Gating in Gruppen (
requireMention,mentionPatterns). - Abweichungen bei Channel-/Gruppen-Allowlists.
Häufige Signaturen:
drop guild message (mention required→ Gruppennachricht wird bis zur Erwähnung ignoriert.pairing request→ Absender benötigt Genehmigung.blocked/allowlist→ Absender/Channel wurde durch Richtlinie gefiltert.
Verwandt:
Dashboard-Control-UI-Konnektivität
Wenn Dashboard/Control UI keine Verbindung herstellt, prüfen Sie URL, Auth-Modus und Annahmen zum sicheren Kontext.
openclaw gateway statusopenclaw statusopenclaw logs --followopenclaw doctoropenclaw gateway status --jsonAchten Sie auf:
- Korrekte Probe-URL und Dashboard-URL.
- Abweichung von Auth-Modus/Token zwischen Client und Gateway.
- HTTP-Nutzung, obwohl Geräteidentität erforderlich ist.
Wenn ein lokaler Browser nach einem Update keine Verbindung zu 127.0.0.1:18789 herstellen kann, stellen Sie zuerst den lokalen Gateway-Dienst wieder her und bestätigen Sie, dass er das Dashboard bereitstellt:
openclaw gateway restartlsof -i :18789curl http://127.0.0.1:18789Wenn curl OpenClaw-HTML zurückgibt, funktioniert der Gateway, und das verbleibende Problem ist wahrscheinlich Browser-Cache, ein alter Deep Link oder veralteter Tab-Zustand. Öffnen Sie http://127.0.0.1:18789 direkt und navigieren Sie vom Dashboard aus. Wenn der Dienst nach einem Neustart nicht weiterläuft, führen Sie openclaw gateway start aus und prüfen Sie openclaw gateway status erneut.
Verbindungs-/Auth-Signaturen
device identity required→ nicht sicherer Kontext oder fehlende Geräte-Auth.origin not allowed→ Browser-Originist nicht ingateway.controlUi.allowedOriginsenthalten (oder Sie verbinden sich von einem Nicht-Loopback-Browser-Origin ohne explizite Allowlist).device nonce required/device nonce mismatch→ Client schließt den Challenge-basierten Geräte-Auth-Flow nicht ab (connect.challenge+device.nonce).device signature invalid/device signature expired→ Client hat die falsche Nutzlast (oder einen veralteten Zeitstempel) für den aktuellen Handshake signiert.AUTH_TOKEN_MISMATCHmitcanRetryWithDeviceToken=true→ Client kann einen vertrauenswürdigen Wiederholungsversuch mit zwischengespeichertem Geräte-Token ausführen.- Dieser Cached-Token-Wiederholungsversuch verwendet den zwischengespeicherten Scope-Satz erneut, der mit dem gekoppelten Geräte-Token gespeichert ist. Aufrufer mit explizitem
deviceToken/ explizitenscopesbehalten stattdessen ihren angeforderten Scope-Satz. AUTH_SCOPE_MISMATCH→ das Geräte-Token wurde erkannt, aber seine genehmigten Scopes decken diese Verbindungsanfrage nicht ab; koppeln Sie erneut oder genehmigen Sie den angeforderten Scope-Vertrag, statt ein gemeinsam genutztes Gateway-Token zu rotieren.- Außerhalb dieses Wiederholungsversuchspfads ist die Auth-Priorität beim Verbinden zuerst explizites gemeinsames Token/Passwort, dann explizites
deviceToken, dann gespeichertes Geräte-Token, dann Bootstrap-Token. - Auf dem asynchronen Tailscale-Serve-Control-UI-Pfad werden fehlgeschlagene Versuche für dasselbe
{scope, ip}serialisiert, bevor der Limiter den Fehler erfasst. Zwei fehlerhafte gleichzeitige Wiederholungsversuche desselben Clients können daher beim zweiten Versuchretry laterstatt zwei einfacher Abweichungen anzeigen. too many failed authentication attempts (retry later)von einem Browser-Origin-Loopback-Client → wiederholte Fehler von demselben normalisiertenOriginwerden vorübergehend gesperrt; ein anderer Localhost-Origin verwendet einen separaten Bucket.- Wiederholtes
unauthorizednach diesem Wiederholungsversuch → gemeinsames Token/Geräte-Token ist abgedriftet; aktualisieren Sie die Token-Konfiguration und genehmigen/rotieren Sie das Geräte-Token bei Bedarf erneut. gateway connect failed:→ falsches Host-/Port-/URL-Ziel.
Schnellübersicht der Auth-Detailcodes
Verwenden Sie error.details.code aus der fehlgeschlagenen connect-Antwort, um die nächste Aktion auszuwählen:
| Detailcode | Bedeutung | Empfohlene Aktion |
|---|---|---|
AUTH_TOKEN_MISSING |
Client hat kein erforderliches gemeinsames Token gesendet. | Token im Client einfügen/festlegen und erneut versuchen. Für Dashboard-Pfade: openclaw config get gateway.auth.token und dann in die Control-UI-Einstellungen einfügen. |
AUTH_TOKEN_MISMATCH |
Gemeinsames Token stimmte nicht mit dem Gateway-Auth-Token überein. | Wenn canRetryWithDeviceToken=true, erlauben Sie einen vertrauenswürdigen Wiederholungsversuch. Cached-Token-Wiederholungen verwenden gespeicherte genehmigte Scopes erneut; Aufrufer mit explizitem deviceToken / scopes behalten angeforderte Scopes. Wenn es weiterhin fehlschlägt, führen Sie die Checkliste zur Wiederherstellung bei Token-Drift aus. |
AUTH_DEVICE_TOKEN_MISMATCH |
Zwischengespeichertes Token pro Gerät ist veraltet oder widerrufen. | Geräte-Token mit der Devices-CLI rotieren/erneut genehmigen, dann erneut verbinden. |
AUTH_SCOPE_MISMATCH |
Geräte-Token ist gültig, aber seine genehmigte Rolle/Scopes decken diese Verbindungsanfrage nicht ab. | Koppeln Sie das Gerät erneut oder genehmigen Sie den angeforderten Scope-Vertrag; behandeln Sie dies nicht als Drift des gemeinsamen Tokens. |
PAIRING_REQUIRED |
Geräteidentität benötigt Genehmigung. Prüfen Sie error.details.reason auf not-paired, scope-upgrade, role-upgrade oder metadata-upgrade, und verwenden Sie requestId / remediationHint, falls vorhanden. |
Ausstehende Anfrage genehmigen: openclaw devices list, dann openclaw devices approve <requestId>. Scope-/Rollen-Upgrades verwenden denselben Flow, nachdem Sie den angeforderten Zugriff geprüft haben. |
Prüfung der Geräte-Auth-v2-Migration:
openclaw --versionopenclaw doctoropenclaw gateway statusWenn Logs Nonce-/Signaturfehler anzeigen, aktualisieren Sie den verbindenden Client und prüfen Sie ihn:
Auf connect.challenge warten
Client wartet auf die vom Gateway ausgegebene connect.challenge.
Nutzlast signieren
Client signiert die Challenge-gebundene Nutzlast.
Geräte-Nonce senden
Client sendet connect.params.device.nonce mit derselben Challenge-Nonce.
Wenn openclaw devices rotate / revoke / remove unerwartet verweigert wird:
- Sitzungen mit gekoppeltem Geräte-Token können nur ihr eigenes Gerät verwalten, sofern der Aufrufer nicht auch
operator.adminhat openclaw devices rotate --scope ...kann nur Operator-Scopes anfordern, die die Aufrufer-Sitzung bereits besitzt
Verwandt:
- Konfiguration (Gateway-Auth-Modi)
- Control UI
- Geräte
- Remote-Zugriff
- Trusted-Proxy-Auth
Gateway-Dienst läuft nicht
Verwenden Sie dies, wenn der Dienst installiert ist, der Prozess aber nicht aktiv bleibt.
openclaw gateway statusopenclaw statusopenclaw logs --followopenclaw doctoropenclaw gateway status --deep # also scan system-level servicesAchten Sie auf:
Runtime: stoppedmit Exit-Hinweisen.- Abweichung der Dienstkonfiguration (
Config (cli)vsConfig (service)). - Port-/Listener-Konflikte.
- Zusätzliche launchd-/systemd-/schtasks-Installationen, wenn
--deepverwendet wird. - Bereinigungshinweise zu
Other gateway-like services detected (best effort).
Häufige Signaturen
Gateway start blocked: set gateway.mode=localoderexisting config is missing gateway.mode→ lokaler Gateway-Modus ist nicht aktiviert, oder die Konfigurationsdatei wurde überschrieben und hatgateway.modeverloren. Fix: Setzen Siegateway.mode="local"in Ihrer Konfiguration, oder führen Sieopenclaw onboard --mode local/openclaw setuperneut aus, um die erwartete Local-Mode-Konfiguration neu zu stempeln. 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 einen Gateway pro Maschine beibehalten; wenn Sie tatsächlich mehr als einen benötigen, isolieren Sie Ports + Konfiguration/Zustand/Workspace. Siehe /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedvon doctor → eine systemd-System-Unit existiert, während der Dienst auf Benutzerebene fehlt. Entfernen oder deaktivieren Sie das Duplikat, bevor doctor einen Benutzerdienst installieren darf, oder setzen SieOPENCLAW_SERVICE_REPAIR_POLICY=external, wenn die System-Unit der beabsichtigte Supervisor ist.Gateway service port does not match current gateway config→ der installierte Supervisor pinnt weiterhin den alten--port. Führen Sieopenclaw doctor --fixoderopenclaw gateway install --forceaus und starten Sie dann den Gateway-Dienst neu.
Verwandt:
macOS-Gateway antwortet ohne Meldung nicht mehr und setzt fort, wenn Sie das Dashboard berühren
Verwenden Sie dies, wenn Channels (Telegram, WhatsApp usw.) auf einem macOS-Host für Minuten bis Stunden stumm bleiben und der Gateway scheinbar genau in dem Moment zurückkommt, in dem Sie die Control UI öffnen, sich per SSH anmelden oder anderweitig mit dem Host interagieren. In openclaw status gibt es normalerweise kein offensichtliches Symptom, weil der Gateway zu dem Zeitpunkt, an dem Sie nachsehen, wieder aktiv ist.
ls ~/.openclaw/logs/stability/ | tail -5openclaw gateway stability --bundle latestpmset -g log | grep -iE "sleep|wake|maintenance" | tail -50launchctl print gui/$UID/ai.openclaw.gateway | grep -E "state|last exit|runs"Achten Sie auf:
- Ein oder mehrere
*-uncaught_exception.json-Bundles in~/.openclaw/logs/stability/, bei denenerror.codeauf einen transienten Netzwerkcode wieENETDOWN,ENETUNREACH,EHOSTUNREACHoderECONNREFUSEDgesetzt ist. pmset -g log-Zeilen wieEntering Sleep state due to 'Maintenance Sleep'oderen0 driver is slow (msg: WillChangeState to 0), die zeitlich mit den Absturz-Zeitstempeln übereinstimmen. Power Nap / Maintenance Sleep versetzt den WLAN-Treiber kurzzeitig in Zustand 0; jeder ausgehendeconnect(), der in dieses Zeitfenster fällt, kann mitENETDOWNfehlschlagen, selbst auf einem Host, der ansonsten vollständige Netzwerkverbindung hat.launchctl print-Ausgabe mitstate = not running, mehreren aktuellenrunsund einem Exit-Code, insbesondere wenn die Lücke zwischen Absturz und nächstem Start eher in der Größenordnung einer Stunde als weniger Sekunden liegt. macOS launchd wendet nach einer Absturzserie eine nicht dokumentierte Respawn-Schutzsperre an, die dazu führen kann, dassKeepAlive=truenicht mehr beachtet wird, bis ein externer Auslöser wie interaktive Anmeldung, Dashboard-Verbindung oderlaunchctl kickstartsie wieder aktiviert.
Häufige Signaturen:
- Ein Stabilitäts-Bundle, dessen
error.codeENETDOWNoder ein verwandter Code ist, wobei der Callstack in NodenetlookupAndConnect/Socket.connectzeigt. OpenClaw2026.5.26und neuer klassifizieren diese als harmlose transiente Netzwerkfehler, sodass sie nicht mehr bis zum obersten Handler für nicht abgefangene Ausnahmen propagieren; wenn Sie eine ältere Version verwenden, aktualisieren Sie zuerst. - Lange ruhige Phasen, die in dem Moment enden, in dem Sie eine Verbindung zur Control UI herstellen oder sich per SSH beim Host anmelden: Die benutzersichtbare Aktivität aktiviert die Respawn-Sperre von launchd wieder, nicht etwas, das das Dashboard mit dem Gateway macht.
runs-Zähler steigt im Tagesverlauf, ohne entsprechende Zeilereceived SIG*; shutting downin~/Library/Logs/openclaw/gateway.log: Saubere Beendigungen protokollieren ein Signal; transiente Abstürze nicht.
Was zu tun ist:
-
Aktualisieren Sie das Gateway, wenn Sie eine Version vor
2026.5.26verwenden. Nach dem Upgrade werden zukünftigeENETDOWN-Fehler als Warnungen protokolliert, statt den Prozess zu beenden. -
Reduzieren Sie Wartungs-Ruhezustandsaktivität auf Mac mini- / Desktop-Hosts, die als dauerhaft laufende Server gedacht sind:
bash sudo pmset -a sleep 0 disksleep 0 standby 0 powernap 0Dies reduziert das zugrunde liegende Treiberflattern deutlich, beseitigt es aber nicht vollständig. Das System kann unabhängig von diesen Flags weiterhin einige Wartungs-Ruhezustände für TCP-Keepalive und mDNS-Pflege ausführen.
-
Fügen Sie einen Liveness-Watchdog hinzu, damit eine zukünftige Absturzserie, die von launchd geparkt wird, schnell erkannt wird:
bash # Example launchd-aware liveness check, suitable for a 5-minute cron or LaunchAgentstate=$(launchctl print gui/$UID/ai.openclaw.gateway 2>/dev/null | awk -F'= ' '/state =/ {print $2; exit}')if [ "$state" != "running" ]; then launchctl kickstart -k gui/$UID/ai.openclaw.gatewayfiZiel ist es, die Respawn-Sperre extern wieder zu aktivieren;
KeepAlive=trueallein reicht unter macOS nach einer Absturzserie nicht aus.
Verwandt:
Gateway wird bei hoher Speichernutzung beendet
Verwenden Sie dies, wenn das Gateway unter Last verschwindet, der Supervisor einen OOM-artigen Neustart meldet oder Logs critical memory pressure bundle written erwähnen.
openclaw gateway status --deepopenclaw logs --followopenclaw gateway stability --bundle latestopenclaw gateway diagnostics exportAchten Sie auf:
Reason: diagnostic.memory.pressure.criticalim neuesten Stabilitäts-Bundle.Memory pressure:mitcritical/rss_threshold,critical/heap_thresholdodercritical/rss_growth.V8 heap:-Werte nahe am Heap-Limit.Largest session files:-Einträge wieagents/<agent>/sessions/<session>.jsonlodersessions/<session>.jsonl.- Linux-cgroup-Speicherzähler, wenn das Gateway in einem Container oder einem speicherbegrenzten Dienst läuft.
Häufige Signaturen:
critical memory pressure bundle writtenerscheint kurz vor dem Neustart → OpenClaw hat ein Prä-OOM-Stabilitäts-Bundle erfasst. Prüfen Sie es mitopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disablederscheint in Gateway-Logs → OpenClaw hat kritischen Speicherdruck erkannt, aber der Prä-OOM-Stabilitäts-Snapshot ist deaktiviert.Largest session files:verweist auf einen sehr großen redigierten Transkriptpfad → reduzieren Sie die aufbewahrte Sitzungsverlaufshistorie, prüfen Sie das Sitzungswachstum oder verschieben Sie alte Transkripte vor dem Neustart aus dem aktiven Speicher.- Verwendete Bytes bei
V8 heap:liegen nahe am Heap-Limit → senken Sie Prompt-/Sitzungsdruck, reduzieren Sie gleichzeitige Arbeit oder erhöhen Sie das Node-Heap-Limit erst, nachdem bestätigt wurde, dass die Arbeitslast erwartet ist. Memory pressure: critical/rss_growth→ Speicher ist innerhalb eines Sampling-Fensters schnell gewachsen. Prüfen Sie die neuesten Logs auf einen großen Import, ausufernde Tool-Ausgabe, wiederholte Retries oder einen Stapel wartender Agent-Arbeit.- Kritischer Speicherdruck erscheint in Logs, aber es existiert kein Bundle → dies ist die Standardeinstellung. Setzen Sie
diagnostics.memoryPressureSnapshot: true, um das Prä-OOM-Stabilitäts-Bundle bei zukünftigen Ereignissen mit kritischem Speicherdruck zu erfassen.
Das Stabilitäts-Bundle enthält keine Payloads. Es enthält operative Speicherhinweise und redigierte relative Dateipfade, aber keine Nachrichtentexte, Webhook-Bodys, Zugangsdaten, Tokens, Cookies oder rohen Sitzungs-IDs. Hängen Sie den Diagnoseexport an Fehlerberichte an, statt rohe Logs zu kopieren.
Verwandt:
Gateway hat ungültige Konfiguration abgelehnt
Verwenden Sie dies, wenn der Gateway-Start mit Invalid config fehlschlägt oder Hot-Reload-Logs melden, dass eine ungültige Bearbeitung übersprungen wurde.
openclaw logs --followopenclaw config fileopenclaw config validateopenclaw doctorAchten Sie auf:
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Eine mit Zeitstempel versehene Datei
openclaw.json.rejected.*neben der aktiven Konfiguration - Eine mit Zeitstempel versehene Datei
openclaw.json.clobbered.*, wenndoctor --fixeine defekte direkte Bearbeitung repariert hat - OpenClaw behält die neuesten 32
.clobbered.*-Dateien für jeden Konfigurationspfad und rotiert ältere
Was passiert ist
- Die Konfiguration wurde beim Start, beim Hot Reload oder bei einem OpenClaw-eigenen Schreibvorgang nicht validiert.
- Der Gateway-Start schlägt geschlossen fehl, statt
openclaw.jsonneu zu schreiben. - Hot Reload überspringt ungültige externe Bearbeitungen und lässt die aktuelle Laufzeitkonfiguration aktiv.
- OpenClaw-eigene Schreibvorgänge lehnen ungültige/destruktive Payloads vor dem Commit ab und speichern
.rejected.*. openclaw doctor --fixist für Reparaturen zuständig. Es kann Nicht-JSON-Präfixe entfernen oder die letzte als gut bekannte Kopie wiederherstellen, während die abgelehnte Payload als.clobbered.*erhalten bleibt.- Wenn viele Reparaturen für einen Konfigurationspfad stattfinden, rotiert OpenClaw ältere
.clobbered.*-Dateien, sodass die neueste reparierte Payload weiterhin verfügbar ist.
Prüfen und reparieren
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".clobbered.* "$CONFIG".rejected.* 2>/dev/null | headdiff -u "$CONFIG" "$(ls -t "$CONFIG".clobbered.* 2>/dev/null | head -n 1)"openclaw config validateopenclaw doctorHäufige Signaturen
.clobbered.*existiert → Doctor hat eine defekte externe Bearbeitung erhalten, während die aktive Konfiguration repariert wurde..rejected.*existiert → ein OpenClaw-eigener Konfigurationsschreibvorgang ist vor dem Commit an Schema- oder Clobber-Prüfungen gescheitert.Config write rejected:→ der Schreibvorgang versuchte, die erforderliche Struktur zu entfernen, die Datei stark zu verkleinern oder ungültige Konfiguration zu persistieren.config reload skipped (invalid config):→ eine direkte Bearbeitung hat die Validierung nicht bestanden und wurde vom laufenden Gateway ignoriert.Invalid config at ...→ der Start ist fehlgeschlagen, bevor Gateway-Dienste gestartet wurden.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goododersize-drop-vs-last-good:*→ ein OpenClaw-eigener Schreibvorgang wurde abgelehnt, weil im Vergleich zum letzten als gut bekannten Backup Felder oder Größe verloren gingen.Config last-known-good promotion skipped→ der Kandidat enthielt redigierte Secret-Platzhalter wie***.
Korrekturoptionen
- Führen Sie
openclaw doctor --fixaus, damit Doctor eine präfixierte/überschriebene Konfiguration repariert oder den letzten als gut bekannten Zustand wiederherstellt. - Kopieren Sie nur die beabsichtigten Schlüssel aus
.clobbered.*oder.rejected.*und wenden Sie sie dann mitopenclaw config setoderconfig.patchan. - Führen Sie
openclaw config validatevor dem Neustart aus. - Wenn Sie manuell bearbeiten, behalten Sie die vollständige JSON5-Konfiguration bei, nicht nur das Teilobjekt, das Sie ändern wollten.
Verwandt:
Gateway-Probe-Warnungen
Verwenden Sie dies, wenn openclaw gateway probe etwas erreicht, aber trotzdem einen Warnungsblock ausgibt.
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --ssh user@gateway-hostAchten Sie auf:
warnings[].codeundprimaryTargetIdin der JSON-Ausgabe.- Ob die Warnung SSH-Fallback, mehrere Gateways, fehlende Scopes oder nicht aufgelöste Auth-Refs betrifft.
Häufige Signaturen:
SSH tunnel failed to start; falling back to direct probes.→ SSH-Einrichtung ist fehlgeschlagen, aber der Befehl hat trotzdem direkte konfigurierte/Loopback-Ziele versucht.multiple reachable gateway identities detected→ unterschiedliche Gateways haben geantwortet, oder OpenClaw konnte nicht nachweisen, dass erreichbare Ziele dasselbe Gateway sind. Ein SSH-Tunnel, eine Proxy-URL oder eine konfigurierte Remote-URL zum selben Gateway wird als ein Gateway mit mehreren Transporten behandelt, selbst wenn sich Transport-Ports unterscheiden.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ Verbindung hat funktioniert, aber Detail-RPC ist durch Scopes eingeschränkt; koppeln Sie die Geräteidentität oder verwenden Sie Zugangsdaten mitoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ Verbindung hat funktioniert, aber der vollständige Diagnose-RPC-Satz ist zeitüberschritten oder fehlgeschlagen. Behandeln Sie dies als erreichbares Gateway mit eingeschränkter Diagnose; vergleichen Sieconnect.okundconnect.rpcOkin der--json-Ausgabe.Capability: pairing-pendingodergateway closed (1008): pairing required→ das Gateway hat geantwortet, aber dieser Client benötigt weiterhin Pairing/Genehmigung vor normalem Operator-Zugriff.- nicht aufgelöster
gateway.auth.*- /gateway.remote.*-SecretRef-Warnungstext → Auth-Material war in diesem Befehlspfad für das fehlgeschlagene Ziel nicht verfügbar.
Verwandt:
Channel verbunden, Nachrichten fließen nicht
Wenn der Channel-Status verbunden ist, aber der Nachrichtenfluss tot ist, konzentrieren Sie sich auf Policy, Berechtigungen und channelspezifische Zustellregeln.
openclaw channels status --probeopenclaw pairing list --channel <channel> [--account <id>]openclaw status --deepopenclaw logs --followopenclaw config get channelsAchten Sie auf:
- DM-Policy (
pairing,allowlist,open,disabled). - Gruppen-Allowlist und Erwähnungsanforderungen.
- Fehlende Channel-API-Berechtigungen/Scopes.
Häufige Signaturen:
mention required→ Nachricht wurde durch Gruppen-Erwähnungs-Policy ignoriert.pairing/ Spuren ausstehender Genehmigung → Absender ist nicht genehmigt.missing_scope,not_in_channel,Forbidden,401/403→ Channel-Auth-/Berechtigungsproblem.
Verwandt:
Cron- und Heartbeat-Zustellung
Wenn Cron oder Heartbeat nicht gelaufen ist oder nicht zugestellt wurde, prüfen Sie zuerst den Scheduler-Zustand und dann das Zustellziel.
openclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw system heartbeat lastopenclaw logs --followAchten Sie auf:
- Cron aktiviert und nächstes Aufwachen vorhanden.
- Status des Jobausführungsverlaufs (
ok,skipped,error). - Heartbeat-Überspringgründe (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Häufige Signaturen
cron: scheduler disabled; jobs will not run automatically→ Cron deaktiviert.cron: timer tick failed→ Scheduler-Tick fehlgeschlagen; prüfen Sie Datei-, Log- und Laufzeitfehler.heartbeat skippedmitreason=quiet-hours→ außerhalb des aktiven Zeitfensters.heartbeat skippedmitreason=empty-heartbeat-file→HEARTBEAT.mdist vorhanden, enthält aber nur leeres, Kommentar-, Header-, Fence- oder leeres Checklisten-Gerüst, sodass OpenClaw den Modellaufruf überspringt.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→ Heartbeat-Ziel wurde zu einem DM-artigen Ziel aufgelöst, währendagents.defaults.heartbeat.directPolicy(oder eine agentenspezifische Überschreibung) aufblockgesetzt ist.
Verwandt:
Node gekoppelt, Tool schlägt fehl
Wenn ein Node gekoppelt ist, Tools aber fehlschlagen, isolieren Sie Vordergrund-, Berechtigungs- und Genehmigungsstatus.
openclaw nodes statusopenclaw nodes describe --node <idOrNameOrIp>openclaw approvals get --node <idOrNameOrIp>openclaw logs --followopenclaw statusAchten Sie auf:
- Node online mit erwarteten Fähigkeiten.
- OS-Berechtigungsfreigaben für Kamera/Mikrofon/Standort/Bildschirm.
- Exec-Genehmigungen und Allowlist-Status.
Häufige Signaturen:
NODE_BACKGROUND_UNAVAILABLE→ Node-App muss im Vordergrund sein.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ fehlende OS-Berechtigung.SYSTEM_RUN_DENIED: approval required→ Exec-Genehmigung ausstehend.SYSTEM_RUN_DENIED: allowlist miss→ Befehl durch Allowlist blockiert.
Verwandt:
Browser-Tool schlägt fehl
Verwenden Sie dies, wenn Browser-Tool-Aktionen fehlschlagen, obwohl der Gateway selbst fehlerfrei ist.
openclaw browser statusopenclaw browser start --browser-profile openclawopenclaw browser profilesopenclaw logs --followopenclaw doctorAchten Sie auf:
- Ob
plugins.allowgesetzt ist undbrowserenthält. - Gültiger Pfad zur Browser-ausführbaren Datei.
- Erreichbarkeit des CDP-Profils.
- Lokale Chrome-Verfügbarkeit für
existing-session- /user-Profile.
Plugin- / ausführbare-Datei-Signaturen
unknown command "browser"oderunknown command 'browser'→ das gebündelte Browser-Plugin wird durchplugins.allowausgeschlossen.- Browser-Tool fehlt / nicht verfügbar, während
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→ konfigurierter 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 ungültigen oder außerhalb des Bereichs liegenden Port.Playwright is not available in this gateway build; '<feature>' is unsupported.→ der aktuellen Gateway-Installation fehlt die zentrale Browser-Laufzeitabhängigkeit; installieren oder aktualisieren Sie OpenClaw erneut und starten Sie dann den Gateway neu. ARIA-Snapshots und einfache Seiten-Screenshots können weiterhin funktionieren, aber Navigation, AI-Snapshots, CSS-Selector-Element-Screenshots und PDF-Export bleiben nicht verfügbar.
Chrome-MCP- / Existing-Session-Signaturen
Could not find DevToolsActivePort for chrome→ Chrome-MCP-Existing-Session konnte noch nicht an das ausgewählte Browser-Datenverzeichnis anhängen. Öffnen Sie die Browser-Inspect-Seite, aktivieren Sie Remote-Debugging, lassen Sie den Browser geöffnet, genehmigen Sie die erste Anhängeaufforderung und versuchen Sie es erneut. Wenn angemeldeter Zustand nicht erforderlich ist, bevorzugen Sie das verwalteteopenclaw-Profil.No Chrome tabs found for profile="user"→ das Chrome-MCP-Anhängeprofil 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→ reines Anhängeprofil hat kein erreichbares Ziel, oder der HTTP-Endpunkt hat geantwortet, aber der CDP-WebSocket konnte trotzdem nicht geöffnet werden.
Element- / Screenshot- / Upload-Signaturen
fullPage is not supported for element screenshots→ Screenshot-Anfrage hat--full-pagemit--refoder--elementkombiniert.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ Chrome-MCP- /existing-session-Screenshot-Aufrufe müssen Seitenerfassung oder eine Snapshot---refverwenden, nicht CSS---element.existing-session file uploads do not support element selectors; use ref/inputRef.→ Chrome-MCP-Upload-Hooks benötigen Snapshot-Refs, keine CSS-Selectoren.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 bei Chrome-MCP-Profilen unterstützen keine Timeout-Überschreibungen.existing-session type does not support timeoutMs overrides.→ lassen SietimeoutMsfüract:typebeiprofile="user"- / Chrome-MCP-Existing-Session-Profilen weg oder verwenden Sie ein verwaltetes/CDP-Browser-Profil, wenn ein benutzerdefinierter Timeout erforderlich ist.existing-session evaluate does not support timeoutMs overrides.→ lassen SietimeoutMsfüract:evaluatebeiprofile="user"- / Chrome-MCP-Existing-Session-Profilen weg oder verwenden Sie ein verwaltetes/CDP-Browser-Profil, wenn ein benutzerdefinierter Timeout erforderlich ist.response body is not supported for existing-session profiles yet.→responsebodyerfordert weiterhin einen verwalteten Browser oder ein Raw-CDP-Profil.- veralteter Viewport / Dark-Mode- / Locale- / Offline-Überschreibungen bei reinen Anhänge- oder Remote-CDP-Profilen → führen Sie
openclaw browser stop --browser-profile <name>aus, um die aktive Steuerungssitzung zu schließen und den Playwright-/CDP-Emulationszustand freizugeben, ohne den gesamten Gateway neu zu starten.
Verwandt:
Wenn Sie ein Upgrade durchgeführt haben und plötzlich etwas nicht mehr funktioniert
Die meisten Probleme nach einem Upgrade entstehen durch Konfigurationsabweichungen oder dadurch, dass strengere Standardwerte jetzt durchgesetzt werden.
1. Verhalten von Authentifizierung und URL-Überschreibung hat sich geändert
openclaw gateway statusopenclaw config get gateway.modeopenclaw config get gateway.remote.urlopenclaw config get gateway.auth.modeWas zu prüfen ist:
- Wenn
gateway.mode=remoteist, zielen CLI-Aufrufe möglicherweise auf die Remote-Instanz, während Ihr lokaler Dienst in Ordnung ist. - Explizite
--url-Aufrufe fallen nicht auf gespeicherte Anmeldedaten zurück.
Häufige Signaturen:
gateway connect failed:→ falsches URL-Ziel.unauthorized→ Endpunkt erreichbar, aber falsche Authentifizierung.
2. Bind- und Authentifizierungs-Leitplanken sind strenger
openclaw config get gateway.bindopenclaw config get gateway.auth.modeopenclaw config get gateway.auth.tokenopenclaw gateway statusopenclaw logs --followWas zu prüfen ist:
- Nicht-Loopback-Binds (
lan,tailnet,custom) benötigen einen gültigen Gateway-Authentifizierungspfad: Authentifizierung per gemeinsamem Token/Passwort oder eine korrekt konfigurierte Nicht-Loopback-trusted-proxy-Bereitstellung. - Alte Schlüssel wie
gateway.tokenersetzengateway.auth.tokennicht.
Häufige Signaturen:
refusing to bind gateway ... without auth→ Nicht-Loopback-Bind ohne gültigen Gateway-Authentifizierungspfad.Connectivity probe: failed, während die Runtime läuft → Gateway aktiv, aber mit aktueller Authentifizierung/URL nicht zugänglich.
3. Pairing- und Geräteidentitätsstatus haben sich geändert
openclaw devices listopenclaw pairing list --channel <channel> [--account <id>]openclaw logs --followopenclaw doctorWas zu prüfen ist:
- Ausstehende Gerätefreigaben für Dashboard/Knoten.
- Ausstehende DM-Pairing-Freigaben nach Richtlinien- oder Identitätsänderungen.
Häufige Signaturen:
device identity required→ Geräteauthentifizierung nicht erfüllt.pairing required→ Absender/Gerät muss freigegeben werden.
Wenn Dienstkonfiguration und Runtime nach den Prüfungen weiterhin voneinander abweichen, installieren Sie die Dienstmetadaten aus demselben Profil-/Statusverzeichnis neu:
openclaw gateway install --forceopenclaw gateway restartVerwandt: