Start here
Ogólne rozwiązywanie problemów
Jeśli masz tylko 2 minuty, użyj tej strony jako wejścia do triage.
Pierwsze 60 sekund
Uruchom tę dokładną drabinę w podanej kolejności:
openclaw statusopenclaw status --allopenclaw gateway probeopenclaw gateway statusopenclaw doctoropenclaw channels status --probeopenclaw logs --followDobry wynik w jednym wierszu:
openclaw status→ pokazuje skonfigurowane kanały i brak oczywistych błędów uwierzytelniania.openclaw status --all→ pełny raport jest dostępny i gotowy do udostępnienia.openclaw gateway probe→ oczekiwany cel Gateway jest osiągalny (Reachable: yes).Capability: ...mówi, jaki poziom uwierzytelnienia sonda mogła potwierdzić, aRead probe: limited - missing scope: operator.readoznacza zdegradowaną diagnostykę, nie błąd połączenia.openclaw gateway status→Runtime: running,Connectivity probe: okoraz wiarygodny wierszCapability: .... Użyj--require-rpc, jeśli potrzebujesz także dowodu RPC z zakresem odczytu.openclaw doctor→ brak blokujących błędów konfiguracji lub usługi.openclaw channels status --probe→ osiągalny Gateway zwraca bieżący stan transportu dla poszczególnych kont oraz wyniki sondy/audytu, takie jakworkslubaudit ok; jeśli Gateway jest nieosiągalny, polecenie wraca do podsumowań wyłącznie z konfiguracji.openclaw logs --follow→ stabilna aktywność, bez powtarzających się błędów krytycznych.
Asystent wydaje się ograniczony lub brakuje mu narzędzi
Jeśli asystent nie może sprawdzać plików, uruchamiać poleceń, używać automatyzacji przeglądarki albo widzieć oczekiwanych narzędzi, najpierw sprawdź efektywny profil narzędzi:
openclaw statusopenclaw status --allopenclaw doctorTypowe przyczyny:
tools.profile: "messaging"jest celowo wąski dla agentów działających tylko w czacie.tools.profile: "coding"to zwykły profil dla przepływów repozytorium, plików, powłoki i środowiska uruchomieniowego.tools.profile: "full"udostępnia najszerszy zestaw narzędzi i powinien być ograniczony do zaufanych agentów kontrolowanych przez operatora.- Nadpisania
agents.list[].toolsdla poszczególnych agentów mogą zawęzić lub rozszerzyć profil główny dla jednego agenta.
Zmień główny profil narzędzi lub profil dla danego agenta, następnie zrestartuj albo przeładuj Gateway i ponownie uruchom openclaw status --all. Zobacz Narzędzia, aby poznać model profili oraz nadpisania allow/deny.
Długi kontekst Anthropic 429
Jeśli widzisz:
HTTP 429: rate_limit_error: Extra usage is required for long context requests,
przejdź do /gateway/troubleshooting#anthropic-429-extra-usage-required-for-long-context.
Lokalny backend zgodny z OpenAI działa bezpośrednio, ale zawodzi w OpenClaw
Jeśli Twój lokalny lub samodzielnie hostowany backend /v1 odpowiada na małe bezpośrednie sondy /v1/chat/completions, ale zawodzi przy openclaw infer model run albo zwykłych turach agenta:
- Jeśli błąd wspomina, że
messages[].contentoczekuje ciągu znaków, ustawmodels.providers.<provider>.models[].compat.requiresStringContent: true. - Jeśli backend nadal zawodzi tylko przy turach agenta OpenClaw, ustaw
models.providers.<provider>.models[].compat.supportsTools: falsei ponów próbę. - Jeśli bardzo małe bezpośrednie wywołania nadal działają, ale większe prompty OpenClaw powodują awarię backendu, potraktuj pozostały problem jako ograniczenie nadrzędnego modelu/serwera i kontynuuj w szczegółowym runbooku: /gateway/troubleshooting#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail
Instalacja Plugin kończy się błędem brakujących rozszerzeń openclaw
Jeśli instalacja kończy się błędem package.json missing openclaw.extensions, pakiet Plugin używa starego kształtu, którego OpenClaw już nie akceptuje.
Napraw w pakiecie Plugin:
- Dodaj
openclaw.extensionsdopackage.json. - Skieruj wpisy na zbudowane pliki środowiska uruchomieniowego, zwykle
./dist/index.js. - Opublikuj Plugin ponownie i uruchom jeszcze raz
openclaw plugins install <package>.
Przykład:
{ "name": "@openclaw/my-plugin", "version": "1.2.3", "openclaw": { "extensions": ["./dist/index.js"] }}Odniesienie: Architektura Plugin
Zasady instalacji blokują instalacje lub aktualizacje Plugin
Jeśli aktualizacja się kończy, ale Plugins są przestarzałe, wyłączone albo pokazują komunikaty takie jak blocked by install policy, install policy failed closed lub Disabled "<plugin>" after plugin update failure, sprawdź security.installPolicy.
Zasady instalacji działają podczas instalacji i aktualizacji Plugin. Wersje Plugin należących do OpenClaw zwykle przesuwają się wraz z wydaniem OpenClaw, więc aktualizacja OpenClaw może też wymagać dopasowanych aktualizacji Plugin @openclaw/* podczas synchronizacji po aktualizacji.
Unikaj tych szerokich kształtów zasad, chyba że utrzymujesz także pasującą regułę aktualizacji:
- Zamrażanie Plugin należących do OpenClaw na jednej dokładnej starej wersji, na przykład zezwalanie tylko na
@openclaw/*@2026.5.3. - Blokowanie wyłącznie według rodzaju źródła, na przykład każdego żądania Plugin z npm, sieci albo
request.mode: "update". - Traktowanie polecenia zasad jako opcjonalnego. Gdy
security.installPolicyjest włączone, brakujący, wolny, nieczytelny albo zablokowany uprawnieniami plik wykonywalny zasad kończy się zamknięciem w trybie fail-closed. - Zatwierdzanie wersji Plugin bez uwzględnienia
openclawVersionz żądania zasad oraz metadanych kandydata Plugin.
Bezpieczniejsze reguły zasad zezwalają na zaufane aktualizacje Plugin należących do OpenClaw, gdy kandydat jest zgodny z bieżącym hostem OpenClaw, zamiast przypinać jedno wydanie na zawsze. Jeśli domyślnie blokujesz npm, zrób wąski wyjątek dla zaufanych pakietów Plugin @openclaw/* albo identyfikatorów Plugin, których używasz. Jeśli rozróżniasz żądania instalacji i aktualizacji, zastosuj tę samą regułę zaufania do request.mode: "update".
Odzyskiwanie:
openclaw doctor --deepopenclaw plugins update --allopenclaw status --allJeśli zasady są celowo ścisłe, poluzuj je dla zaufanego okna aktualizacji OpenClaw, ponownie uruchom openclaw plugins update --all, a potem przywróć bardziej rygorystyczną regułę. Jeśli Plugin został wyłączony po błędzie aktualizacji, sprawdź go i włącz ponownie dopiero po powodzeniu aktualizacji:
openclaw plugins inspect <plugin-id> --runtime --jsonopenclaw plugins enable <plugin-id>Odniesienie: Zasady instalacji operatora
Plugin obecny, ale zablokowany przez podejrzane właścicielstwo
Jeśli openclaw doctor, konfiguracja albo ostrzeżenia startowe pokazują:
blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)plugin present but blockedpliki Plugin należą do innego użytkownika Unix niż proces, który je ładuje. Nie usuwaj konfiguracji Plugin. Napraw właścicielstwo plików albo uruchom OpenClaw jako ten sam użytkownik, który jest właścicielem katalogu stanu.
Instalacje Docker zwykle działają jako node (uid 1000). Dla domyślnej konfiguracji Docker napraw montowania bind hosta:
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspaceopenclaw doctor --fixJeśli celowo uruchamiasz OpenClaw jako root, zamiast tego napraw zarządzany katalog główny Plugin na właścicielstwo root:
sudo chown -R root:root /path/to/openclaw-config/npmopenclaw doctor --fixSzczegółowe dokumenty:
Drzewo decyzyjne
flowchart TD
A[OpenClaw is not working] --> B{What breaks first}
B --> C[No replies]
B --> D[Dashboard or Control UI will not connect]
B --> E[Gateway will not start or service not running]
B --> F[Channel connects but messages do not flow]
B --> G[Cron or heartbeat did not fire or did not deliver]
B --> H[Node is paired but camera canvas screen exec fails]
B --> I[Browser tool fails]
C --> C1[/No replies section/]
D --> D1[/Control UI section/]
E --> E1[/Gateway section/]
F --> F1[/Channel flow section/]
G --> G1[/Automation section/]
H --> H1[/Node tools section/]
I --> I1[/Browser section/]No replies
openclaw statusopenclaw gateway statusopenclaw channels status --probeopenclaw pairing list --channel <channel> [--account <id>]openclaw logs --followDobry wynik wygląda tak:
Runtime: runningConnectivity probe: okCapability: read-only,write-capablealboadmin-capable- Twój kanał pokazuje połączony transport oraz, tam gdzie jest to obsługiwane,
workslubaudit okwchannels status --probe - Nadawca wygląda na zatwierdzonego albo zasady DM są otwarte/lista dozwolonych
Typowe sygnatury w logach:
drop guild message (mention required→ bramka wzmianek zablokowała wiadomość w Discord.pairing request→ nadawca nie jest zatwierdzony i czeka na zatwierdzenie parowania przez DM.blocked/allowlistw logach kanału → nadawca, pokój albo grupa są filtrowane.
Szczegółowe strony:
Dashboard or Control UI will not connect
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeDobry wynik wygląda tak:
Dashboard: http://...jest pokazany wopenclaw gateway statusConnectivity probe: okCapability: read-only,write-capablealboadmin-capable- Brak pętli uwierzytelniania w logach
Typowe sygnatury w logach:
device identity required→ kontekst HTTP/niezabezpieczony nie może ukończyć uwierzytelniania urządzenia.origin not allowed→ przeglądarkowyOriginnie jest dozwolony dla celu Gateway interfejsu Control UI.AUTH_TOKEN_MISMATCHze wskazówkami ponowienia (canRetryWithDeviceToken=true) → jedna zaufana próba ponowienia z tokenem urządzenia może nastąpić automatycznie.- To ponowienie z buforowanym tokenem używa zestawu zakresów z pamięci podręcznej zapisanego z sparowanym tokenem urządzenia. Wywołujący z jawnym
deviceToken/ jawnymiscopeszachowują zamiast tego swój żądany zestaw zakresów. - Na asynchronicznej ścieżce Tailscale Serve Control UI nieudane próby dla tego samego
{scope, ip}są serializowane, zanim limiter zapisze niepowodzenie, więc druga równoczesna nieudana próba może już pokazaćretry later. too many failed authentication attempts (retry later)z lokalnego źródła przeglądarki → powtarzające się niepowodzenia z tego samegoOriginsą tymczasowo blokowane; inne lokalne źródło używa osobnego kubełka.- powtarzające się
unauthorizedpo tej próbie ponowienia → zły token/hasło, niezgodny tryb uwierzytelniania albo nieaktualny sparowany token urządzenia. gateway connect failed:→ UI celuje w zły URL/port albo nieosiągalny Gateway.
Szczegółowe strony:
Gateway will not start or service installed but not running
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeDobry wynik wygląda tak:
Service: ... (loaded)Runtime: runningConnectivity probe: okCapability: read-only,write-capablealboadmin-capable
Typowe sygnatury w logach:
Gateway start blocked: set gateway.mode=locallubexisting config is missing gateway.mode→ tryb Gateway jest zdalny albo w pliku konfiguracji brakuje znacznika trybu lokalnego i należy go naprawić.refusing to bind gateway ... without auth→ powiązanie poza local loopback bez prawidłowej ścieżki uwierzytelniania Gateway (token/hasło albo trusted-proxy, gdy skonfigurowano).another gateway instance is already listeninglubEADDRINUSE→ port jest już zajęty.
Szczegółowe strony:
Kanał łączy się, ale wiadomości nie przepływają
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probePrawidłowe dane wyjściowe wyglądają tak:
- Transport kanału jest połączony.
- Kontrole parowania/listy dozwolonych przechodzą pomyślnie.
- Wzmianki są wykrywane tam, gdzie są wymagane.
Typowe sygnatury logów:
mention required→ bramka wzmianki w grupie zablokowała przetwarzanie.pairing/pending→ nadawca DM nie został jeszcze zatwierdzony.not_in_channel,missing_scope,Forbidden,401/403→ problem z tokenem uprawnień kanału.
Szczegółowe strony:
Cron lub Heartbeat nie uruchomił się albo nie dostarczył
openclaw statusopenclaw gateway statusopenclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw logs --followPrawidłowe dane wyjściowe wyglądają tak:
cron.statuspokazuje stan włączony z następnym wybudzeniem.cron runspokazuje ostatnie wpisyok.- Heartbeat jest włączony i nie znajduje się poza godzinami aktywności.
Typowe sygnatury logów:
cron: scheduler disabled; jobs will not run automatically→ cron jest wyłączony.heartbeat skippedzreason=quiet-hours→ poza skonfigurowanymi godzinami aktywności.heartbeat skippedzreason=empty-heartbeat-file→HEARTBEAT.mdistnieje, ale zawiera tylko puste wiersze, komentarz, nagłówek, ogrodzenie albo pusty szkielet listy kontrolnej.heartbeat skippedzreason=no-tasks-due→ tryb zadańHEARTBEAT.mdjest aktywny, ale żaden z interwałów zadań nie jest jeszcze wymagalny.heartbeat skippedzreason=alerts-disabled→ cała widoczność Heartbeat jest wyłączona (showOk,showAlertsiuseIndicatorsą wyłączone).requests-in-flight→ główna ścieżka jest zajęta; wybudzenie Heartbeat zostało odroczone.unknown accountId→ docelowe konto dostarczania Heartbeat nie istnieje.
Szczegółowe strony:
Node jest sparowany, ale narzędzie camera canvas screen exec zawodzi
openclaw statusopenclaw gateway statusopenclaw nodes statusopenclaw nodes describe --node <idOrNameOrIp>openclaw logs --followPrawidłowe dane wyjściowe wyglądają tak:
- Node jest wymieniony jako połączony i sparowany dla roli
node. - Istnieje capability dla wywoływanego polecenia.
- Stan uprawnień dla narzędzia to granted.
Typowe sygnatury logów:
NODE_BACKGROUND_UNAVAILABLE→ przenieś aplikację node na pierwszy plan.*_PERMISSION_REQUIRED→ odmówiono uprawnienia systemu operacyjnego albo go brakuje.SYSTEM_RUN_DENIED: approval required→ zatwierdzenie exec oczekuje.SYSTEM_RUN_DENIED: allowlist miss→ polecenia nie ma na liście dozwolonych exec.
Szczegółowe strony:
Exec nagle prosi o zatwierdzenie
openclaw config get tools.exec.hostopenclaw config get tools.exec.securityopenclaw config get tools.exec.askopenclaw gateway restartCo się zmieniło:
- Jeśli
tools.exec.hostnie jest ustawione, wartością domyślną jestauto. host=autorozwiązuje się dosandbox, gdy aktywne jest środowisko uruchomieniowe sandbox, w przeciwnym razie dogateway.host=autodotyczy tylko routingu; zachowanie "YOLO" bez monitów wynika zsecurity=fullorazask=offna gateway/node.- Na
gatewayinodenieustawionetools.exec.securitydomyślnie przyjmujefull. - Nieustawione
tools.exec.askdomyślnie przyjmujeoff. - Wynik: jeśli widzisz zatwierdzenia, jakaś lokalna dla hosta albo sesji polityka zaostrzyła exec względem bieżących wartości domyślnych.
Przywróć bieżące domyślne zachowanie bez zatwierdzeń:
openclaw config set tools.exec.host gatewayopenclaw config set tools.exec.security fullopenclaw config set tools.exec.ask offopenclaw gateway restartBezpieczniejsze alternatywy:
- Ustaw tylko
tools.exec.host=gateway, jeśli chcesz jedynie stabilnego routingu hosta. - Użyj
security=allowlistzask=on-miss, jeśli chcesz exec na hoście, ale nadal chcesz przeglądu przy brakach na liście dozwolonych. - Włącz tryb sandbox, jeśli chcesz, aby
host=autoponownie rozwiązywał się dosandbox.
Typowe sygnatury logów:
Approval required.→ polecenie czeka na/approve ....SYSTEM_RUN_DENIED: approval required→ zatwierdzenie exec na hoście node oczekuje.exec host=sandbox requires a sandbox runtime for this session→ niejawny/jawny wybór sandbox, ale tryb sandbox jest wyłączony.
Szczegółowe strony:
Narzędzie przeglądarki zawodzi
openclaw statusopenclaw gateway statusopenclaw browser statusopenclaw logs --followopenclaw doctorPrawidłowe dane wyjściowe wyglądają tak:
- Stan przeglądarki pokazuje
running: trueoraz wybraną przeglądarkę/profil. openclawuruchamia się albouserwidzi lokalne karty Chrome.
Typowe sygnatury logów:
unknown command "browser"lubunknown command 'browser'→ ustawionoplugins.allow, ale nie zawierabrowser.Failed to start Chrome CDP on port→ lokalne uruchomienie przeglądarki nie powiodło się.browser.executablePath not found→ skonfigurowana ścieżka pliku binarnego jest błędna.browser.cdpUrl must be http(s) or ws(s)→ skonfigurowany URL CDP używa nieobsługiwanego schematu.browser.cdpUrl has invalid port→ skonfigurowany URL CDP ma nieprawidłowy albo spoza zakresu port.No Chrome tabs found for profile="user"→ profil dołączania Chrome MCP nie ma otwartych lokalnych kart Chrome.Remote CDP for profile "<name>" is not reachable→ skonfigurowany zdalny punkt końcowy CDP jest nieosiągalny z tego hosta.Browser attachOnly is enabled ... not reachablelubBrowser attachOnly is enabled and CDP websocket ... is not reachable→ profil tylko dołączania nie ma aktywnego celu CDP.- nieaktualne nadpisania viewportu / trybu ciemnego / locale / offline w profilach tylko dołączania lub zdalnego CDP → uruchom
openclaw browser stop --browser-profile <name>, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji bez restartowania Gateway.
Szczegółowe strony:
Powiązane
- FAQ — często zadawane pytania
- Rozwiązywanie problemów z Gateway — problemy specyficzne dla gateway
- Doctor — zautomatyzowane kontrole kondycji i naprawy
- Rozwiązywanie problemów z kanałami — problemy z łącznością kanałów
- Rozwiązywanie problemów z automatyzacją — problemy z cron i Heartbeat