Gateway
Rozwiązywanie problemów
To jest szczegółowy podręcznik operacyjny. Najpierw zacznij od /help/troubleshooting, aby przeprowadzić szybką diagnostykę.
Sekwencja poleceń
Uruchom w następującej kolejności:
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeSygnały prawidłowego działania:
openclaw gateway statuspokazujeRuntime: running,Connectivity probe: okoraz wierszCapability: ....openclaw doctornie zgłasza żadnych blokujących problemów z konfiguracją ani usługą.openclaw channels status --probepokazuje bieżący stan transportu dla poszczególnych kont oraz, jeśli jest to obsługiwane,workslubaudit ok.
Po aktualizacji
Użyj, gdy aktualizacja została ukończona, ale Gateway nie działa, kanały są puste lub wywołania modeli kończą się błędami 401.
openclaw status --allopenclaw update status --jsonopenclaw gateway status --deepopenclaw doctor --fixopenclaw gateway restartSprawdź:
Update restartwopenclaw status/openclaw status --all. Oczekujące lub nieudane przekazania zawierają następne polecenie do uruchomienia.plugin load failed: dependency tree corrupted; run openclaw doctor --fixw sekcji Kanały: konfiguracja kanału nadal istnieje, ale rejestracja pluginu nie powiodła się przed załadowaniem kanału.- Błędy 401 dostawcy po ponownym uwierzytelnieniu:
openclaw doctor --fixsprawdza nieaktualne kopie uwierzytelniania OAuth poszczególnych agentów i usuwa stare kopie, aby wszyscy agenci korzystali z bieżącego profilu współdzielonego.
Rozbieżne instalacje i zabezpieczenie przed nowszą konfiguracją
Użyj, gdy usługa Gateway nieoczekiwanie zatrzymuje się po aktualizacji lub dzienniki wskazują, że jeden plik binarny openclaw jest starszy niż wersja, która ostatnio zapisała openclaw.json.
OpenClaw oznacza zapisy konfiguracji za pomocą meta.lastTouchedVersion. Polecenia tylko do odczytu mogą sprawdzać konfigurację zapisaną przez nowszą wersję OpenClaw, ale operacje modyfikujące procesy i usługi nie mogą być wykonywane przez starszy plik binarny. Zablokowane działania: uruchamianie, zatrzymywanie, ponowne uruchamianie i odinstalowywanie usługi Gateway, wymuszona ponowna instalacja usługi, uruchamianie Gateway w trybie usługi oraz czyszczenie portu gateway --force.
which openclawopenclaw --versionopenclaw gateway status --deepopenclaw config get meta.lastTouchedVersionNapraw PATH
Popraw PATH, aby openclaw wskazywało nowszą instalację, a następnie ponownie wykonaj działanie.
Ponownie zainstaluj usługę Gateway
Ponownie zainstaluj właściwą usługę Gateway z nowszej instalacji:
openclaw gateway install --forceopenclaw gateway restartUsuń nieaktualne skrypty opakowujące
Usuń nieaktualne wpisy pakietu systemowego lub starego skryptu opakowującego, które nadal wskazują stary plik binarny openclaw.
Niezgodność protokołu po wycofaniu wersji
Użyj, gdy po obniżeniu lub wycofaniu wersji dzienniki nadal wyświetlają protocol mismatch. Działa starszy Gateway, ale nowszy lokalny proces klienta nadal ponownie się łączy, używając zakresu protokołu, którego starszy Gateway nie obsługuje.
openclaw --versionwhich -a openclawopenclaw gateway status --deepopenclaw doctor --deepopenclaw logs --followSprawdź:
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>w dziennikach Gateway.Established clients:wopenclaw gateway status --deeplubGateway clientswopenclaw doctor --deep: aktywni klienci TCP połączeni z portem Gateway, wraz z identyfikatorami PID i wierszami poleceń, jeśli system operacyjny na to pozwala.- Proces klienta, którego wiersz polecenia wskazuje nowszą instalację OpenClaw lub skrypt opakowujący sprzed wycofania wersji.
Rozwiązanie:
- Zatrzymaj lub ponownie uruchom nieaktualny proces klienta OpenClaw wskazany przez
gateway status --deep. - Ponownie uruchom aplikacje lub skrypty opakowujące zawierające OpenClaw: lokalne pulpity, edytory, narzędzia pomocnicze serwera aplikacji lub długotrwale działające powłoki
openclaw logs --follow. - Ponownie uruchom
openclaw gateway status --deeplubopenclaw doctor --deepi potwierdź, że identyfikator PID nieaktualnego klienta zniknął.
Nie konfiguruj starszego Gateway tak, aby akceptował nowszy, niezgodny protokół. Zmiany wersji protokołu chronią kontrakt komunikacyjny; odzyskiwanie po wycofaniu wersji wymaga uporządkowania procesów i wersji.
Pominięto dowiązanie symboliczne umiejętności jako wyjście poza ścieżkę
Użyj, gdy dzienniki zawierają:
Pomijanie ścieżki umiejętności wychodzącej poza skonfigurowany katalog główny: ... reason=symlink-escapeKażdy katalog główny umiejętności stanowi granicę zawierania. Dowiązanie symboliczne w ~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills lub ~/.openclaw/skills jest pomijane, gdy jego rzeczywisty cel znajduje się poza tym katalogiem głównym, chyba że cel został jawnie oznaczony jako zaufany.
Sprawdź dowiązanie:
ls -l ~/.agents/skills/<name>realpath ~/.agents/skills/<name>openclaw config get skills.loadJeśli cel jest zamierzony, skonfiguruj zarówno bezpośredni katalog główny umiejętności, jak i dozwolony cel dowiązania symbolicznego:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Następnie rozpocznij nową sesję lub zaczekaj na odświeżenie przez mechanizm monitorujący umiejętności. Uruchom Gateway ponownie, jeśli działający proces został uruchomiony przed zmianą konfiguracji.
Nie używaj szerokich celów, takich jak ~, / ani cały synchronizowany folder projektu. Ogranicz allowSymlinkTargets do rzeczywistego katalogu głównego umiejętności zawierającego zaufane katalogi SKILL.md.
Jeśli zastosowanie zmian z warsztatu umiejętności ma również zapisywać dane za pośrednictwem tych zaufanych, dowiązanych symbolicznie ścieżek umiejętności obszaru roboczego, włącz skills.workshop.allowSymlinkTargetWrites. Pozostaw tę opcję wyłączoną dla współdzielonych katalogów głównych umiejętności przeznaczonych tylko do odczytu.
Powiązane:
Błąd Anthropic 429 wymagający dodatkowego użycia dla długiego kontekstu
Użyj, gdy dzienniki lub błędy zawierają: HTTP 429: rate_limit_error: Extra usage is required for long context requests.
openclaw logs --followopenclaw models statusopenclaw config get agents.defaults.modelsSprawdź:
- Wybrany model Anthropic to model Claude 4.x w ogólnej dostępności, obsługujący kontekst 1M (Opus 4.6/4.7/4.8, Sonnet 4.6), albo konfiguracja modelu nadal zawiera starsze
params.context1m: true. - Bieżące dane uwierzytelniające Anthropic nie uprawniają do używania długiego kontekstu.
- Żądania kończą się niepowodzeniem tylko podczas długich sesji lub uruchomień modeli wymagających ścieżki kontekstu 1M.
Możliwe rozwiązania:
Użyj standardowego okna kontekstu
Przełącz się na model ze standardowym oknem albo usuń starsze context1m ze starszej
konfiguracji modelu, który nie obsługuje kontekstu 1M w ramach ogólnej dostępności.
Użyj odpowiednich danych uwierzytelniających
Użyj danych uwierzytelniających Anthropic uprawniających do żądań z długim kontekstem albo przełącz się na klucz API Anthropic.
Skonfiguruj modele zapasowe
Skonfiguruj modele zapasowe, aby uruchomienia były kontynuowane po odrzuceniu przez Anthropic żądań z długim kontekstem.
Powiązane:
Odpowiedzi 403 blokowane przez usługę nadrzędną
Użyj, gdy nadrzędny dostawca LLM zwraca ogólny błąd 403, taki jak Your request was blocked.
Nie zakładaj, że zawsze jest to problem z konfiguracją OpenClaw. Odpowiedź może pochodzić z nadrzędnej warstwy zabezpieczeń, takiej jak CDN, WAF, reguła zarządzania botami lub odwrotne proxy przed punktem końcowym zgodnym z OpenAI.
openclaw statusopenclaw gateway statusopenclaw logs --followSprawdź:
- Wiele modeli tego samego dostawcy kończy się niepowodzeniem w taki sam sposób.
- Tekst HTML lub ogólny komunikat zabezpieczeń zamiast zwykłego błędu API dostawcy.
- Zdarzenia zabezpieczeń po stronie dostawcy z czasu tego samego żądania.
- Powodzenie niewielkiego bezpośredniego testu
curl, podczas gdy zwykłe żądania o strukturze SDK kończą się niepowodzeniem.
Jeśli dowody wskazują na blokadę WAF/CDN, najpierw popraw filtrowanie po stronie dostawcy. Preferuj precyzyjnie ograniczoną regułę zezwalającą lub pomijającą dla ścieżki API używanej przez OpenClaw i unikaj wyłączania ochrony całej witryny.
Powiązane:
Lokalny backend zgodny z OpenAI przechodzi testy bezpośrednie, ale uruchomienia agenta kończą się niepowodzeniem
Użyj, gdy:
curl ... /v1/modelsdziała.- Niewielkie bezpośrednie wywołania
/v1/chat/completionsdziałają. - Uruchomienia modeli OpenClaw kończą się niepowodzeniem tylko podczas zwykłych tur agenta.
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 --followSprawdź:
- Niewielkie wywołania bezpośrednie kończą się powodzeniem, ale uruchomienia OpenClaw zawodzą tylko przy większych promptach.
- Błędy
model_not_foundlub 404, mimo że bezpośrednie/v1/chat/completionsdziała z tym samym identyfikatorem modelu bez prefiksu. - Błędy backendu informujące, że
messages[].contentoczekuje ciągu znaków. - Sporadyczne ostrzeżenia
incomplete turn detected ... stopReason=stop payloads=0z lokalnym backendem zgodnym z OpenAI. - Awarie backendu występujące tylko przy większej liczbie tokenów promptu lub pełnych promptach środowiska wykonawczego agenta.
Typowe objawy
model_not_foundz lokalnym serwerem w stylu MLX/vLLM: sprawdź, czybaseUrlzawiera/v1,apima wartość"openai-completions"dla backendów/v1/chat/completions, amodels.providers.<provider>.models[].idjest lokalnym identyfikatorem dostawcy bez prefiksu. Wybierz go jednorazowo z prefiksem dostawcy, na przykładmlx/mlx-community/Qwen3-30B-A3B-6bit; pozostaw wpis katalogu jakomlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string: backend odrzuca ustrukturyzowane części zawartości Chat Completions. Rozwiązanie: ustawmodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keyslub dozwolone klucze wiadomości, takie jak["role","content"]: backend odrzuca metadane odtwarzania w stylu OpenAI w wiadomościach Chat Completions. Rozwiązanie: ustawmodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0: backend ukończył żądanie Chat Completions, ale w tej turze nie zwrócił tekstu asystenta widocznego dla użytkownika. OpenClaw jednokrotnie ponawia bezpieczne do odtworzenia, puste tury zgodne z OpenAI; utrzymujące się błędy zwykle oznaczają, że backend emituje pustą lub nietekstową zawartość albo pomija tekst końcowej odpowiedzi.- Niewielkie żądania bezpośrednie kończą się powodzeniem, ale uruchomienia agenta OpenClaw kończą się awariami backendu lub modelu (na przykład Gemma w niektórych kompilacjach
inferrs): transport OpenClaw prawdopodobnie jest już poprawny; backend nie radzi sobie z większą strukturą promptu środowiska wykonawczego agenta. - Po wyłączeniu narzędzi liczba błędów maleje, ale nie znikają one całkowicie: schematy narzędzi były częścią obciążenia, lecz pozostałym problemem nadal jest wydajność nadrzędnego modelu lub serwera albo błąd backendu.
Możliwe rozwiązania
- Ustaw
compat.requiresStringContent: truedla backendów Chat Completions obsługujących wyłącznie ciągi znaków. - Ustaw
compat.strictMessageKeys: truedla rygorystycznych backendów Chat Completions, które w każdej wiadomości akceptują wyłącznieroleicontent. - Ustaw
compat.supportsTools: falsedla modeli lub backendów, które nie są w stanie niezawodnie obsługiwać zestawu schematów narzędzi OpenClaw. - W miarę możliwości zmniejsz obciążenie promptu: mniejsza inicjalizacja obszaru roboczego, krótsza historia sesji, lżejszy model lokalny lub backend z lepszą obsługą długiego kontekstu.
- Jeśli niewielkie żądania bezpośrednie nadal działają, ale tury agenta OpenClaw wciąż powodują awarię backendu, potraktuj to jako ograniczenie nadrzędnego serwera lub modelu i zgłoś tam przypadek reprodukcyjny z akceptowaną strukturą ładunku.
Powiązane:
Brak odpowiedzi
Jeśli kanały działają, ale nic nie odpowiada, przed ponownym łączeniem czegokolwiek należy sprawdzić routing i zasady.
openclaw statusopenclaw channels status --probeopenclaw pairing list --channel <channel> [--account <id>]openclaw config get channelsopenclaw logs --followNależy sprawdzić:
- Oczekujące parowanie nadawców wiadomości bezpośrednich.
- Ograniczenie odpowiedzi w grupie do wzmianek (
requireMention,mentionPatterns). - Niezgodności list dozwolonych kanałów/grup.
Typowe sygnatury:
drop guild message (mention required→ wiadomość grupowa jest ignorowana do czasu wzmianki.pairing request→ nadawca wymaga zatwierdzenia.blocked/allowlist→ nadawca/kanał został odfiltrowany przez zasady.
Powiązane:
Łączność interfejsu sterowania panelu
Jeśli panel/interfejs sterowania nie może się połączyć, należy zweryfikować adres URL, tryb uwierzytelniania i założenia dotyczące bezpiecznego kontekstu.
openclaw gateway statusopenclaw statusopenclaw logs --followopenclaw doctoropenclaw gateway status --jsonNależy sprawdzić:
- Poprawny adres URL sondy i adres URL panelu.
- Niezgodność trybu uwierzytelniania/tokena między klientem a gatewayem.
- Użycie protokołu HTTP tam, gdzie wymagana jest tożsamość urządzenia.
Jeśli po aktualizacji lokalna przeglądarka nie może połączyć się z 127.0.0.1:18789, najpierw należy przywrócić lokalną usługę Gateway i potwierdzić, że udostępnia panel:
openclaw gateway restartlsof -i :18789curl http://127.0.0.1:18789Jeśli curl zwraca kod HTML OpenClaw, Gateway działa, a pozostały problem prawdopodobnie dotyczy pamięci podręcznej przeglądarki, starego łącza bezpośredniego lub nieaktualnego stanu karty. Należy otworzyć bezpośrednio http://127.0.0.1:18789 i przejść dalej z panelu. Jeśli po ponownym uruchomieniu usługa nie pozostaje uruchomiona, należy wykonać openclaw gateway start i ponownie sprawdzić openclaw gateway status.
Sygnatury połączenia / uwierzytelniania
device identity required→ niezabezpieczony kontekst lub brak uwierzytelniania urządzenia.origin not allowed→Originprzeglądarki nie znajduje się wgateway.controlUi.allowedOrigins(lub połączenie pochodzi z przeglądarki o źródle innym niż loopback bez jawnej listy dozwolonych).device nonce required/device nonce mismatch→ klient nie kończy przepływu uwierzytelniania urządzenia opartego na wyzwaniu (connect.challenge+device.nonce).device signature invalid/device signature expired→ klient podpisał nieprawidłowy ładunek (lub użył nieaktualnego znacznika czasu) dla bieżącego uzgadniania.AUTH_TOKEN_MISMATCHzcanRetryWithDeviceToken=true→ klient może wykonać jedną zaufaną ponowną próbę z użyciem tokena urządzenia z pamięci podręcznej.- Ta ponowna próba z tokenem z pamięci podręcznej wykorzystuje ponownie zestaw zakresów zapisany wraz z tokenem sparowanego urządzenia. Wywołujący jawnie używający
deviceToken/scopeszachowują zamiast tego żądany zestaw zakresów. AUTH_SCOPE_MISMATCH→ token urządzenia został rozpoznany, ale jego zatwierdzone zakresy nie obejmują tego żądania połączenia; zamiast zmieniać współdzielony token gatewaya, należy ponownie sparować urządzenie lub zatwierdzić żądany kontrakt zakresów.- Poza tą ścieżką ponownej próby kolejność pierwszeństwa uwierzytelniania połączenia jest następująca: najpierw jawny współdzielony token/hasło, następnie jawne
deviceToken, potem zapisany token urządzenia, a na końcu token rozruchowy. - W asynchronicznej ścieżce interfejsu sterowania Tailscale Serve nieudane próby dla tego samego
{scope, ip}są serializowane, zanim ogranicznik zarejestruje niepowodzenie. Dlatego dwie równoczesne nieudane ponowne próby tego samego klienta mogą przy drugiej próbie zwrócićretry laterzamiast dwóch zwykłych niezgodności. too many failed authentication attempts (retry later)od klienta loopback pochodzącego z przeglądarki → powtarzające się niepowodzenia z tego samego znormalizowanegoOriginsą tymczasowo blokowane; inne źródło localhost używa osobnego zasobnika.- Powtarzające się
unauthorizedpo tej ponownej próbie → rozbieżność współdzielonego tokena/tokena urządzenia; należy odświeżyć konfigurację tokena i w razie potrzeby ponownie zatwierdzić lub zmienić token urządzenia. gateway connect failed:→ nieprawidłowy host/port/docelowy adres URL.
Skrócona mapa kodów szczegółów uwierzytelniania
Aby wybrać następną czynność, należy użyć error.details.code z nieudanej odpowiedzi connect:
| Kod szczegółów | Znaczenie | Zalecane działanie |
|---|---|---|
AUTH_TOKEN_MISSING |
Klient nie wysłał wymaganego współdzielonego tokena. | Wkleić/ustawić token w kliencie i ponowić próbę. W przypadku ścieżek panelu: openclaw config get gateway.auth.token, a następnie wkleić go w ustawieniach interfejsu sterowania. |
AUTH_TOKEN_MISMATCH |
Współdzielony token nie odpowiadał tokenowi uwierzytelniania gatewaya. | Jeśli canRetryWithDeviceToken=true, zezwolić na jedną zaufaną ponowną próbę. Ponowne próby z tokenem z pamięci podręcznej używają zapisanych zatwierdzonych zakresów; wywołujący jawnie używający deviceToken / scopes zachowują żądane zakresy. Jeśli problem nadal występuje, wykonać listę kontrolną odzyskiwania po rozbieżności tokenów. |
AUTH_DEVICE_TOKEN_MISMATCH |
Token przypisany do urządzenia, przechowywany w pamięci podręcznej, jest nieaktualny lub został unieważniony. | Zmienić/ponownie zatwierdzić token urządzenia za pomocą CLI urządzeń, a następnie połączyć się ponownie. |
AUTH_SCOPE_MISMATCH |
Token urządzenia jest prawidłowy, ale jego zatwierdzona rola/zakresy nie obejmują tego żądania połączenia. | Ponownie sparować urządzenie lub zatwierdzić żądany kontrakt zakresów; nie traktować tego jako rozbieżności współdzielonego tokena. |
PAIRING_REQUIRED |
Tożsamość urządzenia wymaga zatwierdzenia. Sprawdzić error.details.reason pod kątem not-paired, scope-upgrade, role-upgrade lub metadata-upgrade oraz użyć requestId / remediationHint, jeśli są dostępne. |
Zatwierdzić oczekujące żądanie: openclaw devices list, a następnie openclaw devices approve <requestId>. Uaktualnienia zakresu/roli korzystają z tego samego przepływu po sprawdzeniu żądanego dostępu. |
Kontrola migracji uwierzytelniania urządzeń v2:
openclaw --versionopenclaw doctoropenclaw gateway statusJeśli dzienniki zawierają błędy wartości jednorazowej/podpisu, należy zaktualizować łączącego się klienta i zweryfikować go:
Oczekiwanie na connect.challenge
Klient oczekuje na wydane przez gateway connect.challenge.
Podpisanie ładunku
Klient podpisuje ładunek powiązany z wyzwaniem.
Wysłanie wartości jednorazowej urządzenia
Klient wysyła connect.params.device.nonce z tą samą wartością jednorazową wyzwania.
Jeśli openclaw devices rotate / revoke / remove zostanie nieoczekiwanie odrzucone:
- Sesje z tokenem sparowanego urządzenia mogą zarządzać tylko własnym urządzeniem, chyba że wywołujący ma również
operator.admin. openclaw devices rotate --scope ...może żądać tylko tych zakresów operatora, które już posiada sesja wywołującego.
Powiązane:
- Konfiguracja (tryby uwierzytelniania gatewaya)
- Interfejs sterowania
- Urządzenia
- Dostęp zdalny
- Uwierzytelnianie zaufanego serwera proxy
Usługa Gateway nie jest uruchomiona
Należy użyć, gdy usługa jest zainstalowana, ale proces nie pozostaje uruchomiony.
openclaw gateway statusopenclaw statusopenclaw logs --followopenclaw doctoropenclaw gateway status --deep # skanuje również usługi na poziomie systemuNależy sprawdzić:
Runtime: stoppedze wskazówkami dotyczącymi zakończenia.- Niezgodność konfiguracji usługi (
Config (cli)aConfig (service)). - Konflikty portów/procesów nasłuchujących.
- Dodatkowe instalacje launchd/systemd/schtasks w przypadku użycia
--deep. - Wskazówki dotyczące czyszczenia
Other gateway-like services detected (best effort).
Typowe sygnatury
Gateway start blocked: set gateway.mode=locallubexisting config is missing gateway.mode→ lokalny tryb gatewaya nie jest włączony albo plik konfiguracyjny został nadpisany i utraciłgateway.mode. Rozwiązanie: ustawićgateway.mode="local"w konfiguracji albo ponownie wykonaćopenclaw onboard --mode local/openclaw setup, aby ponownie zapisać oczekiwaną konfigurację trybu lokalnego. Jeśli OpenClaw działa za pośrednictwem Podman, domyślna ścieżka konfiguracji to~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ powiązanie inne niż loopback bez prawidłowej ścieżki uwierzytelniania gatewaya (token/hasło lub skonfigurowany zaufany serwer proxy).another gateway instance is already listening/EADDRINUSE→ konflikt portów.Other gateway-like services detected (best effort)→ istnieją nieaktualne lub równoległe jednostki launchd/systemd/schtasks. W większości konfiguracji powinien działać jeden gateway na komputer; jeśli potrzebny jest więcej niż jeden, należy odizolować porty oraz konfigurację/stan/obszar roboczy. Zobacz /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedz doctora → istnieje jednostka systemowa systemd, podczas gdy brakuje usługi na poziomie użytkownika. Przed zezwoleniem doctorowi na zainstalowanie usługi użytkownika należy usunąć lub wyłączyć duplikat albo ustawićOPENCLAW_SERVICE_REPAIR_POLICY=external, jeśli jednostka systemowa ma być zamierzonym nadzorcą.Gateway service port does not match current gateway config→ zainstalowany nadzorca nadal wskazuje stary--port. Należy wykonaćopenclaw doctor --fixlubopenclaw gateway install --force, a następnie ponownie uruchomić usługę gatewaya.
Powiązane:
Gateway w systemie macOS po cichu przestaje odpowiadać, a następnie wznawia działanie po użyciu panelu
Użyj tego rozwiązania, gdy kanały (Telegram, WhatsApp itp.) na hoście macOS przestają odpowiadać na okres od kilku minut do kilku godzin, a Gateway zdaje się wracać do działania w chwili otwarcia interfejsu Control UI, połączenia przez SSH lub innej interakcji z hostem. Zwykle nie ma żadnego oczywistego objawu w openclaw status, ponieważ zanim zostanie to sprawdzone, Gateway znów działa.
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"Należy szukać:
- Co najmniej jednego pakietu
*-uncaught_exception.jsonw~/.openclaw/logs/stability/, w którymerror.codeustawiono na przejściowy kod sieciowy, taki jakENETDOWN,ENETUNREACH,EHOSTUNREACHlubECONNREFUSED. - Wierszy
pmset -g log, takich jakEntering Sleep state due to 'Maintenance Sleep'luben0 driver is slow (msg: WillChangeState to 0), zbieżnych czasowo ze znacznikami awarii. Power Nap / Maintenance Sleep na krótko przełącza sterownik Wi-Fi w stan 0; każde wychodząceconnect(), które trafi w to okno, może zakończyć się błędemENETDOWNnawet na hoście, który poza tym ma pełną łączność sieciową. - Danych wyjściowych
launchctl printwskazującychstate = not runningz wieloma niedawnymirunsi kodem wyjścia, szczególnie gdy przerwa między awarią a następnym uruchomieniem wynosi około godziny, a nie kilka sekund. Po serii awarii launchd w systemie macOS stosuje nieudokumentowaną blokadę ochronną ponownego uruchamiania, przez którą może przestać respektowaćKeepAlive=true, dopóki zewnętrzny wyzwalacz, taki jak interaktywne logowanie, połączenie z panelem lublaunchctl kickstart, nie uzbroi jej ponownie.
Typowe oznaki:
- Pakiet stabilności, którego
error.codetoENETDOWNlub pokrewny kod, a stos wywołań wskazuje nanetlookupAndConnect/Socket.connectśrodowiska Node. OpenClaw2026.5.26i nowsze wersje klasyfikują je jako niegroźne, przejściowe błędy sieciowe, dzięki czemu nie są już przekazywane do najwyższego poziomu obsługi nieprzechwyconych błędów; w przypadku starszej wersji należy najpierw przeprowadzić aktualizację. - Długie okresy braku aktywności, które kończą się natychmiast po połączeniu z interfejsem Control UI lub hostem przez SSH: to aktywność widoczna dla użytkownika ponownie uzbraja blokadę ponownego uruchamiania launchd, a nie jakiekolwiek działanie panelu wobec Gateway.
- Licznik
runszwiększający się w ciągu dnia bez odpowiadającego mu wierszareceived SIG*; shutting downw~/Library/Logs/openclaw/gateway.log: prawidłowe zamknięcia zapisują sygnał w dzienniku, natomiast przejściowe awarie tego nie robią.
Co zrobić:
-
Zaktualizuj Gateway, jeśli używana wersja jest starsza niż
2026.5.26. Po aktualizacji przyszłe błędyENETDOWNbędą rejestrowane jako ostrzeżenia zamiast kończyć proces. -
Ogranicz aktywność uśpienia konserwacyjnego na hostach Mac mini / komputerach stacjonarnych przeznaczonych do pracy jako stale dostępne serwery:
bash sudo pmset -a sleep 0 disksleep 0 standby 0 powernap 0Znacznie ogranicza to podstawowy problem z krótkotrwałym zanikiem działania sterownika, ale nie eliminuje go całkowicie. Niezależnie od tych flag system nadal może przeprowadzać niektóre uśpienia konserwacyjne na potrzeby podtrzymywania połączeń TCP i obsługi mDNS.
-
Dodaj mechanizm nadzoru żywotności, aby przyszła seria awarii zatrzymana przez launchd została szybko wykryta:
bash # Przykładowe sprawdzenie żywotności uwzględniające launchd, odpowiednie dla Cron lub LaunchAgent uruchamianego co 5 minutstate=$(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.gatewayfiCelem jest zewnętrzne ponowne uzbrojenie blokady ponownego uruchamiania; samo
KeepAlive=truenie wystarcza w systemie macOS po serii awarii.
Powiązane:
Pętla nadzorcy launchd w systemie macOS z powielonymi agentami LaunchAgent Gateway/Node
Użyj tego rozwiązania, gdy instalacja w systemie macOS uruchamia się ponownie co kilka sekund, testy kondycji openclaw
naprzemiennie wskazują dostępność i niedostępność, a wysyłanie przez kanały zatrzymuje się,
mimo że usługa wydaje się działać.
Zaobserwowano to w starszych instalacjach, w których jednocześnie aktywne były agenty LaunchAgent ai.openclaw.gateway i
ai.openclaw.node, a każdy z nich wstrzykiwał
OPENCLAW_LAUNCHD_LABEL. W takim stanie OpenClaw może wykryć nadzór launchd,
spróbować przekazać ponowne uruchomienie z powrotem do launchd i wpaść w szybką
pętlę EADDRINUSE/ponownego uruchamiania zamiast utrzymywać jeden stabilny proces Gateway.
for i in 1 2 3 4; do ps aux | grep 'openclaw.*index.js' | grep -v grep | awk '{print $2}' sleep 10done openclaw gateway status --deepopenclaw node statuslaunchctl print gui/$UID/ai.openclaw.gateway | grep -E 'state|last exit|runs'tail -n 80 ~/Library/Logs/openclaw/gateway.logNależy szukać:
- Więcej niż jednego identyfikatora PID Gateway w 30-sekundowej próbce zamiast jednego stabilnego procesu.
EADDRINUSE,another gateway instance is already listeninglub powtarzających się wierszy ponownego uruchamiania/przekazywania wgateway.log.- Jednoczesnego załadowania
~/Library/LaunchAgents/ai.openclaw.gateway.plisti~/Library/LaunchAgents/ai.openclaw.node.plistna hoście, na którym powinna działać tylko jedna zarządzana usługa Gateway.
Co zrobić:
-
Jeśli na tym hoście powinna działać wyłącznie usługa Gateway, usuń zarządzaną usługę Node za pośrednictwem OpenClaw. Pomiń ten krok, jeśli usługa Node jest aktywnie wykorzystywana do zdalnych funkcji Node; jej odinstalowanie zatrzyma te funkcje na tym hoście:
bash openclaw node uninstall -
Zainstaluj trwały skrypt opakowujący Gateway, który przed uruchomieniem OpenClaw wyczyści odziedziczone znaczniki launchd. Użyj obsługiwanej opcji
--wrapper; nie edytuj wygenerowanego pliku w~/.openclaw/service-env/, ponieważ ponowna instalacja usługi, aktualizacja i naprawa przez Doctor ponownie generują ten plik:bash mkdir -p ~/.local/bincat >~/.local/bin/openclaw-launchd-workaround <<'EOF'#!/bin/shset -euunset OPENCLAW_LAUNCHD_LABEL LAUNCH_JOB_LABEL LAUNCH_JOB_NAME XPC_SERVICE_NAME || trueexec openclaw "$@"EOFchmod 700 ~/.local/bin/openclaw-launchd-workaround openclaw gateway install \ --wrapper ~/.local/bin/openclaw-launchd-workaround \ --forcegateway installzachowuje ścieżkę skryptu opakowującego podczas wymuszonych ponownych instalacji, aktualizacji i napraw przez Doctor. -
Sprawdź, czy Gateway działa stabilnie i obsługuje RPC, a nie tylko nasłuchuje:
bash openclaw gateway status --deep --require-rpc for i in 1 2 3 4; do ps aux | grep 'openclaw.*index.js' | grep -v grep | awk '{print $2}' sleep 10donePróbka PID powinna wskazywać jeden stabilny proces zamiast zmieniającego się zestawu identyfikatorów PID, a obsługa przychodzących wiadomości kanałów powinna zostać wznowiona.
-
Po aktualizacji do wersji, w której naprawiono podstawową pętlę dwóch agentów LaunchAgent, usuń obejście i ponownie zainstaluj standardową zarządzaną usługę:
bash OPENCLAW_WRAPPER= openclaw gateway install --forcerm ~/.local/bin/openclaw-launchd-workaround
Powiązane:
Gateway kończy działanie podczas dużego użycia pamięci
Użyj tego rozwiązania, gdy Gateway znika pod obciążeniem, nadzorca zgłasza ponowne uruchomienie w stylu OOM lub dzienniki zawierają wzmiankę o critical memory pressure bundle written.
openclaw gateway status --deepopenclaw logs --followopenclaw gateway stability --bundle latestopenclaw gateway diagnostics exportNależy szukać:
Reason: diagnostic.memory.pressure.criticalw najnowszym pakiecie stabilności.Memory pressure:zcritical/rss_threshold,critical/heap_thresholdlubcritical/rss_growth.- Wartości
V8 heap:zbliżonych do limitu sterty. - Wpisów
Largest session files:, takich jakagents/<agent>/sessions/<session>.jsonllubsessions/<session>.jsonl. - Liczników pamięci cgroup systemu Linux, gdy Gateway działa wewnątrz kontenera lub usługi z ograniczoną pamięcią.
Typowe oznaki:
critical memory pressure bundle writtenpojawia się krótko przed ponownym uruchomieniem → OpenClaw przechwycił pakiet stabilności sprzed OOM. Sprawdź go za pomocąopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disabledpojawia się w dziennikach Gateway → OpenClaw wykrył krytyczną presję pamięci, ale migawka stabilności sprzed OOM jest wyłączona.Largest session files:wskazuje bardzo dużą, zanonimizowaną ścieżkę transkrypcji → ogranicz zachowywaną historię sesji, sprawdź przyrost sesji lub przenieś stare transkrypcje poza aktywny magazyn przed ponownym uruchomieniem.- Liczba używanych bajtów
V8 heap:jest zbliżona do limitu sterty → zmniejsz obciążenie związane z promptami/sesjami, ogranicz liczbę jednoczesnych zadań lub zwiększ limit sterty Node dopiero po potwierdzeniu, że obciążenie jest oczekiwane. Memory pressure: critical/rss_growth→ użycie pamięci szybko wzrosło w obrębie jednego okna próbkowania. Sprawdź najnowsze dzienniki pod kątem dużego importu, niekontrolowanych danych wyjściowych narzędzia, powtarzanych ponowień lub partii zakolejkowanych zadań agenta.- Krytyczna presja pamięci pojawia się w dziennikach, ale nie istnieje żaden pakiet → jest to ustawienie domyślne. Ustaw
diagnostics.memoryPressureSnapshot: true, aby podczas przyszłych zdarzeń krytycznej presji pamięci przechwytywać pakiet stabilności sprzed OOM.
Pakiet stabilności nie zawiera ładunku. Obejmuje operacyjne dane dotyczące pamięci i zanonimizowane względne ścieżki plików, ale nie tekst wiadomości, treści Webhooków, dane uwierzytelniające, tokeny, pliki cookie ani surowe identyfikatory sesji. Do zgłoszeń błędów należy dołączać eksport diagnostyczny zamiast kopiować surowe dzienniki.
Powiązane:
Gateway odrzucił nieprawidłową konfigurację
Użyj tego rozwiązania, gdy uruchomienie Gateway kończy się niepowodzeniem z komunikatem Invalid config lub dzienniki przeładowania na gorąco informują o pominięciu nieprawidłowej edycji.
openclaw logs --followopenclaw config fileopenclaw config validateopenclaw doctorNależy szukać:
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Pliku
openclaw.json.rejected.*ze znacznikiem czasu obok aktywnej konfiguracji. - Pliku
openclaw.json.clobbered.*ze znacznikiem czasu, jeślidoctor --fixnaprawił uszkodzoną bezpośrednią edycję. - OpenClaw zachowuje 32 najnowsze pliki
.clobbered.*dla każdej ścieżki konfiguracji i rotuje starsze.
Co się stało
- Konfiguracja nie przeszła walidacji podczas uruchamiania, przeładowania na gorąco lub zapisu wykonywanego przez OpenClaw.
- Uruchomienie Gateway kończy się bezpiecznie niepowodzeniem zamiast ponownie zapisywać
openclaw.json. - Przeładowanie na gorąco pomija nieprawidłowe zewnętrzne edycje i pozostawia aktywną bieżącą konfigurację środowiska wykonawczego.
- Zapisy wykonywane przez OpenClaw odrzucają nieprawidłowe/destrukcyjne ładunki przed zatwierdzeniem i zapisują
.rejected.*. openclaw doctor --fixodpowiada za naprawę. Może usuwać prefiksy niebędące JSON-em lub przywracać ostatnią znaną prawidłową kopię, zachowując odrzucony ładunek jako.clobbered.*.- Gdy dla jednej ścieżki konfiguracji przeprowadzanych jest wiele napraw, OpenClaw rotuje starsze pliki
.clobbered.*, aby najnowszy naprawiony ładunek pozostał dostępny.
Sprawdź i napraw
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 doctorTypowe sygnatury
.clobbered.*istnieje → doctor zachował uszkodzoną zmianę zewnętrzną podczas naprawiania aktywnej konfiguracji..rejected.*istnieje → zapis konfiguracji należący do OpenClaw nie przeszedł kontroli schematu lub nadpisania przed zatwierdzeniem.Config write rejected:→ zapis próbował usunąć wymaganą strukturę, znacznie zmniejszyć plik lub utrwalić nieprawidłową konfigurację.config reload skipped (invalid config):→ bezpośrednia edycja nie przeszła walidacji i została zignorowana przez działający Gateway.Invalid config at ...→ uruchamianie nie powiodło się przed uruchomieniem usług Gateway.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goodlubsize-drop-vs-last-good:*→ zapis należący do OpenClaw został odrzucony, ponieważ utracił pola lub zmniejszył rozmiar względem ostatniej znanej prawidłowej kopii zapasowej.Config last-known-good promotion skipped→ kandydat zawierał zredagowane symbole zastępcze sekretów, takie jak***.
Opcje naprawy
- Uruchom
openclaw doctor --fix, aby doctor naprawił konfigurację z prefiksem lub nadpisaną albo przywrócił ostatnią znaną prawidłową wersję. - Skopiuj tylko zamierzone klucze z
.clobbered.*lub.rejected.*, a następnie zastosuj je za pomocąopenclaw config setlubconfig.patch. - Przed ponownym uruchomieniem wykonaj
openclaw config validate. - W przypadku ręcznej edycji zachowaj pełną konfigurację JSON5, a nie tylko częściowy obiekt przeznaczony do zmiany.
Powiązane:
Ostrzeżenia sondy Gateway
Użyj, gdy openclaw gateway probe nawiązuje z czymś połączenie, ale nadal wyświetla blok ostrzeżeń.
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --ssh user@gateway-hostSprawdź:
warnings[].codeiprimaryTargetIdw danych wyjściowych JSON.- Czy ostrzeżenie dotyczy rozwiązania awaryjnego SSH, wielu instancji Gateway, brakujących zakresów czy nierozwiązanych odwołań uwierzytelniania.
Typowe sygnatury:
SSH tunnel failed to start; falling back to direct probes.→ konfiguracja SSH nie powiodła się, ale polecenie nadal próbowało użyć bezpośrednich skonfigurowanych celów lub celów pętli zwrotnej.multiple reachable gateway identities detected→ odpowiedziały odrębne instancje Gateway albo OpenClaw nie mógł potwierdzić, że osiągalne cele są tą samą instancją Gateway. Tunel SSH, adres URL serwera proxy lub skonfigurowany zdalny adres URL prowadzący do tej samej instancji Gateway są traktowane jako jedna instancja Gateway z wieloma transportami, nawet gdy porty transportów są różne.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ połączenie zadziałało, ale szczegółowe RPC jest ograniczone zakresem; sparuj tożsamość urządzenia lub użyj poświadczeń zoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ połączenie zadziałało, ale pełny zestaw diagnostycznych RPC przekroczył limit czasu lub zakończył się niepowodzeniem. Należy traktować to jako osiągalny Gateway z ograniczoną diagnostyką; porównajconnect.okiconnect.rpcOkw danych wyjściowych--json.Capability: pairing-pendinglubgateway closed (1008): pairing required→ Gateway odpowiedział, ale ten klient nadal wymaga sparowania lub zatwierdzenia przed uzyskaniem zwykłego dostępu operatora.- Tekst ostrzeżenia o nierozwiązanym SecretRef
gateway.auth.*/gateway.remote.*→ materiały uwierzytelniające były niedostępne w tej ścieżce polecenia dla celu, którego obsługa nie powiodła się.
Powiązane:
Kanał jest połączony, ale wiadomości nie przepływają
Jeśli stan kanału wskazuje połączenie, ale przepływ wiadomości nie działa, należy skupić się na zasadach, uprawnieniach i regułach dostarczania właściwych dla kanału.
openclaw channels status --probeopenclaw pairing list --channel <channel> [--account <id>]openclaw status --deepopenclaw logs --followopenclaw config get channelsSprawdź:
- Zasady wiadomości prywatnych (
pairing,allowlist,open,disabled). - Listę dozwolonych grup i wymagania dotyczące wzmianek.
- Brakujące uprawnienia lub zakresy interfejsu API kanału.
Typowe sygnatury:
mention required→ wiadomość została zignorowana przez zasady wzmianek grupowych.pairing/ ślady oczekującego zatwierdzenia → nadawca nie został zatwierdzony.missing_scope,not_in_channel,Forbidden,401/403→ problem z uwierzytelnianiem lub uprawnieniami kanału.
Powiązane:
Dostarczanie Cron i Heartbeat
Jeśli Cron lub Heartbeat nie został wykonany albo nie dostarczył wiadomości, najpierw sprawdź stan harmonogramu, a następnie cel dostarczania.
openclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw system heartbeat lastopenclaw logs --followSprawdź:
- Czy Cron jest włączony i czy wskazano następne wybudzenie.
- Stan historii uruchomień zadania (
ok,skipped,error). - Przyczyny pominięcia Heartbeat (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Typowe sygnatury
cron: scheduler disabled; jobs will not run automatically→ Cron jest wyłączony.cron: timer tick failed→ takt harmonogramu nie powiódł się; sprawdź błędy plików, dziennika lub środowiska wykonawczego.heartbeat skippedzreason=quiet-hours→ poza przedziałem aktywnych godzin.heartbeat skippedzreason=empty-heartbeat-file→HEARTBEAT.mdistnieje, ale zawiera tylko puste elementy, komentarze, nagłówki, ogrodzenia lub szkielet pustej listy kontrolnej, dlatego OpenClaw pomija wywołanie modelu.heartbeat skippedzreason=no-tasks-due→HEARTBEAT.mdzawiera bloktasks:, ale żadne z zadań nie jest jeszcze wymagane w tym takcie.heartbeat: unknown accountId→ nieprawidłowy identyfikator konta dla celu dostarczania Heartbeat.heartbeat skippedzreason=dm-blocked→ cel Heartbeat został rozpoznany jako miejsce docelowe typu wiadomości prywatnej, podczas gdyagents.defaults.heartbeat.directPolicy(lub nadpisanie dla agenta) ma wartośćblock.
Powiązane:
Node jest sparowany, ale narzędzie nie działa
Jeśli Node jest sparowany, ale narzędzia nie działają, należy odizolować stan pierwszego planu, uprawnień i zatwierdzeń.
openclaw nodes statusopenclaw nodes describe --node <idOrNameOrIp>openclaw approvals get --node <idOrNameOrIp>openclaw logs --followopenclaw statusSprawdź:
- Czy Node jest online i ma oczekiwane możliwości.
- Przyznane uprawnienia systemu operacyjnego do kamery, mikrofonu, lokalizacji i ekranu.
- Stan zatwierdzeń wykonywania poleceń i listy dozwolonych elementów.
Typowe sygnatury:
NODE_BACKGROUND_UNAVAILABLE→ aplikacja Node musi działać na pierwszym planie.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ brak uprawnienia systemu operacyjnego.SYSTEM_RUN_DENIED: approval required→ zatwierdzenie wykonania oczekuje.SYSTEM_RUN_DENIED: allowlist miss→ polecenie zostało zablokowane przez listę dozwolonych elementów.
Powiązane:
Narzędzie przeglądarki nie działa
Użyj, gdy działania narzędzia przeglądarki kończą się niepowodzeniem, mimo że sam Gateway działa prawidłowo.
openclaw browser statusopenclaw browser start --browser-profile openclawopenclaw browser profilesopenclaw logs --followopenclaw doctorSprawdź:
- Czy ustawiono
plugins.allowi czy zawierabrowser. - Prawidłową ścieżkę do pliku wykonywalnego przeglądarki.
- Osiągalność profilu CDP.
- Dostępność lokalnej przeglądarki Chrome dla profili
existing-session/user.
Sygnatury Pluginu / pliku wykonywalnego
unknown command "browser"lubunknown command 'browser'→ dołączony Plugin przeglądarki został wykluczony przezplugins.allow.- Brak lub niedostępność narzędzia przeglądarki przy
browser.enabled=true→plugins.allowwykluczabrowser, dlatego Plugin nigdy nie został załadowany. Failed to start Chrome CDP on port→ nie udało się uruchomić procesu przeglądarki.browser.executablePath not found→ skonfigurowana ścieżka jest nieprawidłowa.browser.cdpUrl must be http(s) or ws(s)→ skonfigurowany adres URL CDP używa nieobsługiwanego schematu, takiego jakfile:lubftp:.browser.cdpUrl has invalid port→ skonfigurowany adres URL CDP ma nieprawidłowy port lub port spoza zakresu.Playwright is not available in this gateway build; '<feature>' is unsupported.→ bieżąca instalacja Gateway nie zawiera podstawowej zależności środowiska wykonawczego przeglądarki; ponownie zainstaluj lub zaktualizuj OpenClaw, a następnie uruchom ponownie Gateway. Migawki ARIA i podstawowe zrzuty ekranu stron mogą nadal działać, ale nawigacja, migawki AI, zrzuty ekranu elementów wskazanych selektorami CSS oraz eksport do PDF pozostają niedostępne.
Sygnatury Chrome MCP / istniejącej sesji
Could not find DevToolsActivePort for chrome→ istniejąca sesja Chrome MCP nie mogła jeszcze dołączyć do wybranego katalogu danych przeglądarki. Otwórz stronę inspekcji przeglądarki, włącz zdalne debugowanie, pozostaw przeglądarkę otwartą, zatwierdź pierwszy monit o dołączenie, a następnie spróbuj ponownie. Jeśli stan zalogowania nie jest wymagany, zalecany jest zarządzany profilopenclaw.No browser tabs found for profile="user"→ profil dołączania Chrome MCP nie ma żadnych otwartych lokalnych kart Chrome.Remote CDP for profile "<name>" is not reachable→ skonfigurowany zdalny punkt końcowy CDP nie jest osiągalny z hosta Gateway.Browser attachOnly is enabled ... not reachablelubBrowser attachOnly is enabled and CDP websocket ... is not reachable→ profil tylko do dołączania nie ma osiągalnego celu albo punkt końcowy HTTP odpowiedział, ale nadal nie udało się otworzyć WebSocketu CDP.
Sygnatury elementów / zrzutów ekranu / przesyłania
fullPage is not supported for element screenshots→ żądanie zrzutu ekranu połączyło--full-pagez--reflub--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ wywołania zrzutów ekranu Chrome MCP /existing-sessionmuszą używać przechwytywania strony lub--refmigawki, a nie--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ punkty zaczepienia przesyłania Chrome MCP wymagają odwołań do migawek, a nie selektorów CSS.existing-session file uploads currently support one file at a time.→ w profilach Chrome MCP wysyłaj jedno przesłanie na wywołanie.existing-session dialog handling does not support timeoutMs.→ punkty zaczepienia okien dialogowych w profilach Chrome MCP nie obsługują nadpisywania limitów czasu.existing-session type does not support timeoutMs overrides.→ pomińtimeoutMsdlaact:typew profilachprofile="user"/ istniejącej sesji Chrome MCP albo użyj zarządzanego profilu przeglądarki lub profilu CDP, gdy wymagany jest niestandardowy limit czasu.response body is not supported for existing-session profiles yet.→responsebodynadal wymaga zarządzanej przeglądarki lub surowego profilu CDP.- Nieaktualne nadpisania obszaru roboczego, trybu ciemnego, ustawień regionalnych lub trybu offline w profilach tylko do dołączania albo zdalnych profilach CDP → uruchom
openclaw browser stop --browser-profile <name>, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji Playwright/CDP bez ponownego uruchamiania całego Gateway.
Powiązane:
Jeśli po aktualizacji coś nagle przestało działać
Większość problemów po aktualizacji wynika z rozbieżności konfiguracji lub egzekwowania teraz bardziej rygorystycznych ustawień domyślnych.
1. Zmieniono uwierzytelnianie i zachowanie nadpisywania adresu URL
openclaw gateway statusopenclaw config get gateway.modeopenclaw config get gateway.remote.urlopenclaw config get gateway.auth.modeCo sprawdzić:
- Jeśli
gateway.mode=remote, wywołania CLI mogą być kierowane do zdalnej usługi, mimo że lokalna usługa działa prawidłowo. - Jawne wywołania
--urlnie korzystają awaryjnie z zapisanych danych uwierzytelniających.
Typowe objawy:
gateway connect failed:→ nieprawidłowy docelowy adres URL.unauthorized→ punkt końcowy jest osiągalny, ale uwierzytelnianie jest nieprawidłowe.
2. Ograniczenia dotyczące powiązania i uwierzytelniania są bardziej rygorystyczne
openclaw config get gateway.bindopenclaw config get gateway.auth.modeopenclaw config get gateway.auth.tokenopenclaw gateway statusopenclaw logs --followCo sprawdzić:
- Powiązania spoza interfejsu loopback (
lan,tailnet,custom) wymagają prawidłowej ścieżki uwierzytelniania Gateway: uwierzytelniania za pomocą współdzielonego tokenu/hasła albo poprawnie skonfigurowanego wdrożeniatrusted-proxyspoza interfejsu loopback. - Stare klucze, takie jak
gateway.token, nie zastępujągateway.auth.token.
Typowe objawy:
refusing to bind gateway ... without auth→ powiązanie spoza interfejsu loopback bez prawidłowej ścieżki uwierzytelniania Gateway.Connectivity probe: failed, gdy środowisko uruchomieniowe działa → Gateway działa, ale jest niedostępny przy bieżących ustawieniach uwierzytelniania/adresu URL.
3. Zmieniono stan parowania i tożsamości urządzenia
openclaw devices listopenclaw pairing list --channel <channel> [--account <id>]openclaw logs --followopenclaw doctorCo sprawdzić:
- Oczekujące zatwierdzenia urządzeń dla panelu/nodów.
- Oczekujące zatwierdzenia parowania wiadomości bezpośrednich po zmianach zasad lub tożsamości.
Typowe objawy:
device identity required→ wymagania uwierzytelniania urządzenia nie zostały spełnione.pairing required→ nadawca/urządzenie musi zostać zatwierdzone.
Jeśli po wykonaniu tych kontroli konfiguracja usługi i środowisko uruchomieniowe nadal są niespójne, należy ponownie zainstalować metadane usługi z tego samego profilu/katalogu stanu:
openclaw gateway install --forceopenclaw gateway restartPowiązane materiały: