Лестница команд
Сначала выполните это, в таком порядке:openclaw gateway statusпоказываетRuntime: running,Connectivity probe: okи строкуCapability: ....openclaw doctorне сообщает о блокирующих проблемах конфигурации/сервиса.openclaw channels status --probeпоказывает живой статус транспорта по каждому аккаунту и, где поддерживается, результаты probe/audit, такие какworksилиaudit ok.
После обновления
Используйте это, когда обновление завершилось, но Gateway не работает, каналы пусты или вызовы моделей начинают падать с 401.Update restartвopenclaw status/openclaw status --all. Ожидающие или неудачные handoff включают следующую команду для запуска.plugin load failed: dependency tree corrupted; run openclaw doctor --fixв разделе Channels. Это означает, что конфигурация канала все еще существует, но регистрация Plugin завершилась с ошибкой до того, как канал смог загрузиться.- provider 401 после повторной авторизации.
openclaw doctor --fixпроверяет устаревшие OAuth auth shadows для отдельных агентов и удаляет старые копии, чтобы все агенты разрешали текущий общий профиль.
Split brain установки и защита более новой конфигурации
Используйте это, когда gateway service неожиданно останавливается после обновления или логи показывают, что один бинарный файлopenclaw старше версии, которая последней записала openclaw.json.
OpenClaw помечает записи конфигурации через meta.lastTouchedVersion. Команды только для чтения все еще могут просматривать конфигурацию, записанную более новым OpenClaw, но мутации процессов и сервисов отказываются продолжать работу из более старого бинарного файла. Заблокированные действия включают запуск, остановку, перезапуск, удаление gateway service, принудительную переустановку сервиса, запуск Gateway в service-mode и очистку порта через gateway --force.
Fix PATH
Исправьте
PATH, чтобы openclaw разрешался в более новую установку, затем повторите действие.Несовпадение протокола после rollback
Используйте это, когда логи продолжают печататьprotocol mismatch после downgrade или rollback OpenClaw. Это означает, что работает более старый Gateway, но более новый локальный клиентский процесс все еще пытается переподключиться с диапазоном протокола, который старый Gateway не поддерживает.
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>в логах Gateway.Established clients:вopenclaw gateway status --deepилиGateway clientsвopenclaw doctor --deep. Здесь перечислены активные TCP-клиенты, подключенные к порту Gateway, включая PID и командные строки, когда ОС это позволяет.- Клиентский процесс, командная строка которого указывает на более новую установку OpenClaw или wrapper, от которого вы откатились.
- Остановите или перезапустите устаревший клиентский процесс OpenClaw, показанный
gateway status --deep. - Перезапустите приложения или wrapper, которые встраивают OpenClaw, например локальные панели, редакторы, app-server helpers или долго работающие оболочки
openclaw logs --follow. - Повторно выполните
openclaw gateway status --deepилиopenclaw doctor --deepи убедитесь, что устаревший PID клиента исчез.
Skill symlink пропущен как выход за пределы пути
Используйте это, когда логи содержат:~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills или
~/.openclaw/skills пропускается, когда его реальная цель разрешается за пределами этого корня,
если цель не является явно доверенной.
Проверьте ссылку:
~, / или целую синхронизируемую папку проекта.
Ограничивайте allowSymlinkTargets реальным корнем skill, который содержит доверенные
каталоги SKILL.md.
Если Skill Workshop apply также должен записывать через эти доверенные symlink-пути
workspace skill, включите skills.workshop.allowSymlinkTargetWrites. Оставляйте
это отключенным для общих корней skill только для чтения.
Связано:
Anthropic 429: требуется extra usage для длинного контекста
Используйте это, когда логи/ошибки содержат:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Выбранная модель Anthropic — GA-capable модель Claude 4.x с 1M, или у модели есть legacy
params.context1m: true. - Текущие учетные данные Anthropic не подходят для использования длинного контекста.
- Запросы падают только в длинных сессиях/запусках модели, которым нужен путь контекста 1M.
Use a standard context window
Переключитесь на модель со стандартным окном контекста или удалите legacy
context1m из старой
конфигурации модели, которая не является GA-capable для контекста 1M.Use an eligible credential
Используйте учетные данные Anthropic, подходящие для запросов с длинным контекстом, или переключитесь на API-ключ Anthropic.
Ответы upstream 403 blocked
Используйте это, когда upstream LLM provider возвращает общий403, например
Your request was blocked.
Не предполагайте, что это всегда проблема конфигурации OpenClaw. Ответ может
приходить от upstream security layer, например CDN, WAF, правила bot-management или
reverse proxy перед OpenAI-compatible endpoint.
- несколько моделей у одного provider падают одинаковым образом
- HTML или общий security text вместо нормальной ошибки provider API
- security events на стороне provider в то же время запроса
- маленький прямой probe через
curlуспешен, а обычные SDK-shaped requests падают
Локальный OpenAI-compatible backend проходит прямые probes, но agent runs падают
Используйте это, когда:curl ... /v1/modelsработает- крошечные прямые вызовы
/v1/chat/completionsработают - запуски моделей OpenClaw падают только на обычных agent turns
- прямые крошечные вызовы успешны, но запуски OpenClaw падают только на больших prompts
- ошибки
model_not_foundили 404, хотя прямой/v1/chat/completionsработает с тем же bare model id - ошибки backend о том, что
messages[].contentожидает строку - периодические предупреждения
incomplete turn detected ... stopReason=stop payloads=0с OpenAI-compatible local backend - сбои backend, которые появляются только с большими prompt-token counts или полными agent runtime prompts
Common signatures
Common signatures
model_not_foundс локальным MLX/vLLM-style server → проверьте, чтоbaseUrlвключает/v1,apiравен"openai-completions"для backend/v1/chat/completions, аmodels.providers.<provider>.models[].id— bare provider-local id. Выбирайте его с префиксом provider один раз, напримерmlx/mlx-community/Qwen3-30B-A3B-6bit; оставьте запись каталога какmlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string→ backend отклоняет structured Chat Completions content parts. Исправление: задайтеmodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keysили разрешенные ключи сообщений вроде["role","content"]→ backend отклоняет OpenAI-style replay metadata в сообщениях Chat Completions. Исправление: задайтеmodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0→ backend завершил запрос Chat Completions, но не вернул видимый пользователю текст assistant для этого turn. OpenClaw один раз повторяет replay-safe empty OpenAI-compatible turns; постоянные сбои обычно означают, что backend выдает empty/non-text content или подавляет текст final-answer.- прямые крошечные запросы успешны, но agent runs OpenClaw падают со сбоями backend/model (например Gemma в некоторых сборках
inferrs) → transport OpenClaw, вероятно, уже корректен; backend падает на более крупной форме prompt agent-runtime. - сбои уменьшаются после отключения tools, но не исчезают → tool schemas были частью нагрузки, но оставшаяся проблема все еще связана с емкостью upstream model/server или ошибкой backend.
Fix options
Fix options
- Задайте
compat.requiresStringContent: trueдля string-only Chat Completions backends. - Задайте
compat.strictMessageKeys: trueдля строгих Chat Completions backends, которые принимают толькоroleиcontentв каждом сообщении. - Задайте
compat.supportsTools: falseдля models/backends, которые не могут надежно обрабатывать поверхность tool schema OpenClaw. - Снизьте prompt pressure, где возможно: меньший workspace bootstrap, более короткая history сессии, более легкая локальная модель или backend с более сильной поддержкой long-context.
- Если крошечные прямые запросы продолжают проходить, а agent turns OpenClaw все еще падают внутри backend, рассматривайте это как ограничение upstream server/model и отправьте туда repro с принятой формой payload.
Нет ответов
Если каналы работают, но никто не отвечает, проверьте маршрутизацию и политики, прежде чем что-либо переподключать.- Ожидание сопряжения для отправителей DM.
- Ограничение упоминаниями в группах (
requireMention,mentionPatterns). - Несоответствия allowlist канала/группы.
drop guild message (mention required→ групповое сообщение игнорируется до упоминания.pairing request→ отправителю нужно одобрение.blocked/allowlist→ отправитель/канал был отфильтрован политикой.
Подключение пользовательского интерфейса управления Dashboard
Если Dashboard/пользовательский интерфейс управления не подключается, проверьте URL, режим аутентификации и предположения о безопасном контексте.- Правильный URL проверки и URL Dashboard.
- Несоответствие режима аутентификации/токена между клиентом и gateway.
- Использование HTTP там, где требуется идентификация устройства.
127.0.0.1:18789 после обновления, сначала
восстановите локальную службу Gateway и убедитесь, что она отдает Dashboard:
curl возвращает HTML OpenClaw, Gateway работает, а оставшаяся проблема,
вероятно, связана с кешем браузера, старой глубокой ссылкой или устаревшим состоянием вкладки. Откройте
http://127.0.0.1:18789 напрямую и перейдите из Dashboard. Если перезапуск
не оставляет службу запущенной, выполните openclaw gateway start и повторно проверьте
openclaw gateway status.
Признаки подключения / аутентификации
Признаки подключения / аутентификации
device identity required→ небезопасный контекст или отсутствует аутентификация устройства.origin not allowed→ браузерныйOriginотсутствует вgateway.controlUi.allowedOrigins(или вы подключаетесь из браузерного источника не-loopback без явного allowlist).device nonce required/device nonce mismatch→ клиент не завершает поток аутентификации устройства на основе challenge (connect.challenge+device.nonce).device signature invalid/device signature expired→ клиент подписал неправильную полезную нагрузку (или устаревшую метку времени) для текущего handshake.AUTH_TOKEN_MISMATCHсcanRetryWithDeviceToken=true→ клиент может выполнить одну доверенную повторную попытку с кешированным токеном устройства.- Эта повторная попытка с кешированным токеном повторно использует кешированный набор областей доступа, сохраненный с сопряженным токеном устройства. Вызывающие стороны с явным
deviceToken/ явнымиscopesвместо этого сохраняют запрошенный набор областей доступа. AUTH_SCOPE_MISMATCH→ токен устройства распознан, но его одобренные области доступа не покрывают этот запрос подключения; повторно сопрягите устройство или одобрите запрошенный контракт областей доступа вместо ротации общего токена gateway.- Вне этого пути повторной попытки приоритет аутентификации подключения таков: сначала явный общий токен/пароль, затем явный
deviceToken, затем сохраненный токен устройства, затем bootstrap-токен. - В асинхронном пути Tailscale Serve Control UI неудачные попытки для одного и того же
{scope, ip}сериализуются до того, как ограничитель записывает сбой. Поэтому две неудачные параллельные повторные попытки от одного клиента могут показатьretry laterпри второй попытке вместо двух обычных несовпадений. too many failed authentication attempts (retry later)от браузерного клиента loopback → повторные сбои из того же нормализованногоOriginвременно блокируются; другой localhost-источник использует отдельный bucket.- повторяющийся
unauthorizedпосле этой повторной попытки → рассинхронизация общего токена/токена устройства; обновите конфигурацию токена и при необходимости повторно одобрите/ротируйте токен устройства. gateway connect failed:→ неправильный целевой host/port/url.
Краткая карта кодов деталей аутентификации
Используйтеerror.details.code из неудачного ответа connect, чтобы выбрать следующее действие:
| Код детали | Значение | Рекомендуемое действие |
|---|---|---|
AUTH_TOKEN_MISSING | Клиент не отправил обязательный общий токен. | Вставьте/задайте токен в клиенте и повторите попытку. Для путей Dashboard: openclaw config get gateway.auth.token, затем вставьте в настройки Control UI. |
AUTH_TOKEN_MISMATCH | Общий токен не совпал с токеном аутентификации gateway. | Если canRetryWithDeviceToken=true, разрешите одну доверенную повторную попытку. Повторные попытки с кешированным токеном повторно используют сохраненные одобренные области доступа; вызывающие стороны с явным deviceToken / scopes сохраняют запрошенные области доступа. Если сбой сохраняется, выполните контрольный список восстановления после рассинхронизации токенов. |
AUTH_DEVICE_TOKEN_MISMATCH | Кешированный токен отдельного устройства устарел или отозван. | Ротируйте/повторно одобрите токен устройства с помощью CLI устройств, затем переподключитесь. |
AUTH_SCOPE_MISMATCH | Токен устройства действителен, но его одобренная роль/области доступа не покрывают этот запрос подключения. | Повторно сопрягите устройство или одобрите запрошенный контракт областей доступа; не трактуйте это как рассинхронизацию общего токена. |
PAIRING_REQUIRED | Идентификация устройства требует одобрения. Проверьте error.details.reason на not-paired, scope-upgrade, role-upgrade или metadata-upgrade и используйте requestId / remediationHint, если они присутствуют. | Одобрите ожидающий запрос: openclaw devices list, затем openclaw devices approve <requestId>. Повышения областей доступа/ролей используют тот же поток после проверки запрошенного доступа. |
Прямые loopback RPC backend, аутентифицированные общим токеном/паролем gateway, не должны зависеть от базового уровня областей доступа сопряженного устройства CLI. Если субагенты или другие внутренние вызовы по-прежнему завершаются с ошибкой
scope-upgrade, проверьте, что вызывающая сторона использует client.id: "gateway-client" и client.mode: "backend" и не принудительно задает явный deviceIdentity или токен устройства.
Если
openclaw devices rotate / revoke / remove неожиданно отклоняется:
- сеансы токенов сопряженных устройств могут управлять только своим собственным устройством, если у вызывающей стороны также нет
operator.admin openclaw devices rotate --scope ...может запрашивать только операторские области доступа, которые уже есть у сеанса вызывающей стороны
- Конфигурация (режимы аутентификации gateway)
- Control UI
- Устройства
- Удаленный доступ
- Аутентификация доверенного прокси
Служба Gateway не запущена
Используйте это, когда служба установлена, но процесс не остается запущенным.Runtime: stoppedс подсказками о выходе.- Несоответствие конфигурации службы (
Config (cli)иConfig (service)). - Конфликты порта/слушателя.
- Дополнительные установки launchd/systemd/schtasks при использовании
--deep. - Подсказки по очистке
Other gateway-like services detected (best effort).
Типичные признаки
Типичные признаки
Gateway start blocked: set gateway.mode=localилиexisting config is missing gateway.mode→ режим локального gateway не включен, или файл конфигурации был перезаписан и потерялgateway.mode. Исправление: задайтеgateway.mode="local"в конфигурации или повторно выполнитеopenclaw onboard --mode local/openclaw setup, чтобы заново проставить ожидаемую конфигурацию локального режима. Если вы запускаете OpenClaw через Podman, путь конфигурации по умолчанию —~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ привязка не-loopback без допустимого пути аутентификации gateway (токен/пароль или доверенный прокси, если настроен).another gateway instance is already listening/EADDRINUSE→ конфликт порта.Other gateway-like services detected (best effort)→ существуют устаревшие или параллельные units launchd/systemd/schtasks. В большинстве настроек следует оставлять один gateway на машину; если вам действительно нужно больше одного, изолируйте порты + конфигурацию/состояние/рабочую область. См. /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedот doctor → существует системный unit systemd, а пользовательская служба отсутствует. Удалите или отключите дубликат, прежде чем разрешать doctor установить пользовательскую службу, или задайтеOPENCLAW_SERVICE_REPAIR_POLICY=external, если системный unit является предполагаемым supervisor.Gateway service port does not match current gateway config→ установленный supervisor все еще фиксирует старый--port. Выполнитеopenclaw doctor --fixилиopenclaw gateway install --force, затем перезапустите службу gateway.
Gateway на macOS беззвучно перестает отвечать, а затем возобновляет работу, когда вы открываете Dashboard
Используйте это, когда каналы (Telegram, WhatsApp и т. д.) на хосте macOS замолкают на минуты или часы, а gateway, похоже, возвращается в работу в тот момент, когда вы открываете Control UI, входите по SSH или иным образом взаимодействуете с хостом. Обычно вopenclaw status нет очевидного симптома, потому что к моменту проверки gateway снова работает.
- Один или несколько пакетов
*-uncaught_exception.jsonв~/.openclaw/logs/stability/, гдеerror.codeзадан как временный сетевой код, напримерENETDOWN,ENETUNREACH,EHOSTUNREACHилиECONNREFUSED. - Строки
pmset -g logвродеEntering Sleep state due to 'Maintenance Sleep'илиen0 driver is slow (msg: WillChangeState to 0), совпадающие по времени с отметками сбоев. Power Nap / Maintenance Sleep ненадолго переводит драйвер Wi-Fi в состояние 0; любой исходящийconnect(), попавший в это окно, может завершиться сENETDOWNдаже на хосте, который в остальном полностью подключен к сети. - Вывод
launchctl print, показывающийstate = not runningс несколькими недавнимиrunsи кодом выхода, особенно когда промежуток между сбоем и следующим запуском составляет примерно час, а не секунды. macOS launchd применяет недокументированный защитный механизм от частых перезапусков после серии сбоев, из-за которогоKeepAlive=trueможет перестать срабатывать, пока внешний триггер, например интерактивный вход, подключение панели управления илиlaunchctl kickstart, не активирует его снова.
- Пакет стабильности, где
error.codeравенENETDOWNили родственному коду, а стек вызовов указывает на NodenetlookupAndConnect/Socket.connect. OpenClaw2026.5.26и новее классифицирует их как безвредные временные сетевые ошибки, поэтому они больше не передаются в верхнеуровневый обработчик неперехваченных исключений; если у вас более старый выпуск, сначала обновитесь. - Долгие периоды тишины, которые заканчиваются в момент подключения к Control UI или входа на хост по SSH: видимая пользователю активность повторно активирует защитный механизм перезапуска launchd, а не какие-либо действия панели управления с Gateway.
- Счетчик
runsувеличивается в течение дня, но в~/Library/Logs/openclaw/gateway.logнет соответствующей строкиreceived SIG*; shutting down: корректные остановки пишут сигнал в журнал; временные сбои этого не делают.
-
Обновите Gateway, если используете выпуск до
2026.5.26. После обновления будущие ошибкиENETDOWNбудут записываться как предупреждения, а не завершать процесс. -
Сократите активность maintenance sleep на Mac mini / настольных хостах, которые должны работать как постоянно включенные серверы:
Это значительно уменьшает, но не устраняет полностью базовый сбой драйвера. Система все равно может выполнять некоторые maintenance sleep для TCP keepalive и обслуживания mDNS независимо от этих флагов.
-
Добавьте сторожевой механизм доступности, чтобы будущая серия сбоев, остановленная launchd, быстро обнаруживалась:
Смысл в том, чтобы извне повторно активировать защитный механизм перезапуска; одного
KeepAlive=trueна macOS после серии сбоев недостаточно.
Gateway завершается при высоком использовании памяти
Используйте это, когда Gateway исчезает под нагрузкой, супервизор сообщает о перезапуске в стиле OOM или в журналах упоминаетсяcritical memory pressure bundle written.
Reason: diagnostic.memory.pressure.criticalв последнем пакете стабильности.Memory pressure:сcritical/rss_threshold,critical/heap_thresholdилиcritical/rss_growth.- Значения
V8 heap:, близкие к лимиту кучи. - Записи
Largest session files:, напримерagents/<agent>/sessions/<session>.jsonlилиsessions/<session>.jsonl. - Счетчики памяти Linux cgroup, когда Gateway работает внутри контейнера или службы с ограничением памяти.
critical memory pressure bundle writtenпоявляется незадолго до перезапуска → OpenClaw записал пред-OOM пакет стабильности. Проверьте его с помощьюopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disabledпоявляется в журналах Gateway → OpenClaw обнаружил критическое давление памяти, но пред-OOM снимок стабильности отключен.Largest session files:указывает на очень большой путь отредактированной стенограммы → уменьшите сохраняемую историю сессий, проверьте рост сессии или переместите старые стенограммы из активного хранилища перед перезапуском.- Использованные байты
V8 heap:близки к лимиту кучи → снизьте нагрузку от prompts/сессий, уменьшите параллельную работу или увеличьте лимит кучи Node только после подтверждения, что такая рабочая нагрузка ожидаема. Memory pressure: critical/rss_growth→ память быстро выросла в пределах одного окна выборки. Проверьте последние журналы на крупный импорт, неконтролируемый вывод инструмента, повторяющиеся повторы или пакет поставленных в очередь задач агента.- Критическое давление памяти появляется в журналах, но пакет отсутствует → это поведение по умолчанию. Установите
diagnostics.memoryPressureSnapshot: true, чтобы при будущих событиях критического давления памяти записывать пред-OOM пакет стабильности.
Gateway отклонил недействительную конфигурацию
Используйте это, когда запуск Gateway завершается сInvalid config или журналы горячей перезагрузки сообщают,
что недействительное изменение было пропущено.
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Файл
openclaw.json.rejected.*с отметкой времени рядом с активной конфигурацией - Файл
openclaw.json.clobbered.*с отметкой времени, еслиdoctor --fixисправил сломанную прямую правку - OpenClaw хранит последние 32 файла
.clobbered.*для каждого пути конфигурации и ротирует более старые
What happened
What happened
- Конфигурация не прошла проверку при запуске, горячей перезагрузке или записи, выполняемой OpenClaw.
- Запуск Gateway завершается закрыто, без перезаписи
openclaw.json. - Горячая перезагрузка пропускает недействительные внешние изменения и оставляет активной текущую runtime-конфигурацию.
- Записи, выполняемые OpenClaw, отклоняют недействительные/разрушительные полезные нагрузки перед коммитом и сохраняют
.rejected.*. openclaw doctor --fixотвечает за исправление. Он может удалить не-JSON-префиксы или восстановить последнюю заведомо рабочую копию, сохранив отклоненную полезную нагрузку как.clobbered.*.- Когда для одного пути конфигурации выполняется много исправлений, OpenClaw ротирует старые файлы
.clobbered.*, чтобы самая новая исправленная полезная нагрузка оставалась доступной.
Inspect and repair
Inspect and repair
Common signatures
Common signatures
.clobbered.*существует → doctor сохранил сломанную внешнюю правку при исправлении активной конфигурации..rejected.*существует → запись конфигурации, выполняемая OpenClaw, не прошла проверку схемы или защиты от перезаписи перед коммитом.Config write rejected:→ запись пыталась удалить обязательную структуру, резко уменьшить файл или сохранить недействительную конфигурацию.config reload skipped (invalid config):→ прямая правка не прошла проверку и была проигнорирована работающим Gateway.Invalid config at ...→ запуск завершился до старта служб Gateway.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goodилиsize-drop-vs-last-good:*→ запись, выполняемая OpenClaw, была отклонена, потому что потеряла поля или размер по сравнению с последней заведомо рабочей резервной копией.Config last-known-good promotion skipped→ кандидат содержал отредактированные заполнители секретов, например***.
Fix options
Fix options
- Запустите
openclaw doctor --fix, чтобы doctor исправил конфигурацию с префиксом/перезаписью или восстановил последнюю заведомо рабочую. - Скопируйте только нужные ключи из
.clobbered.*или.rejected.*, затем примените их с помощьюopenclaw config setилиconfig.patch. - Запустите
openclaw config validateперед перезапуском. - Если редактируете вручную, сохраняйте полную конфигурацию JSON5, а не только частичный объект, который хотели изменить.
Предупреждения пробы Gateway
Используйте это, когдаopenclaw gateway probe достигает чего-то, но все равно выводит блок предупреждения.
warnings[].codeиprimaryTargetIdв выводе JSON.- Относится ли предупреждение к резервному SSH-пути, нескольким Gateway, отсутствующим scopes или неразрешенным ссылкам auth.
SSH tunnel failed to start; falling back to direct probes.→ настройка SSH не удалась, но команда все равно попробовала прямые настроенные/loopback цели.multiple reachable gateway identities detected→ ответили разные Gateway, или OpenClaw не смог доказать, что достижимые цели являются одним и тем же Gateway. SSH-туннель, proxy URL или настроенный удаленный URL к тому же Gateway считается одним Gateway с несколькими транспортами, даже если порты транспортов различаются.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ подключение сработало, но подробный RPC ограничен scope; свяжите идентификатор устройства или используйте учетные данные сoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ подключение сработало, но полный набор диагностических RPC истек по тайм-ауту или завершился ошибкой. Рассматривайте это как достижимый Gateway с ухудшенной диагностикой; сравнитеconnect.okиconnect.rpcOkв выводе--json.Capability: pairing-pendingилиgateway closed (1008): pairing required→ Gateway ответил, но этому клиенту все еще требуется pairing/approval перед обычным операторским доступом.- Текст предупреждения о неразрешенных
gateway.auth.*/gateway.remote.*SecretRef → материал auth был недоступен в этом пути команды для неудачной цели.
Канал подключен, но сообщения не проходят
Если состояние канала подключено, но поток сообщений не работает, сосредоточьтесь на policy, разрешениях и правилах доставки, специфичных для канала.- Policy для DM (
pairing,allowlist,open,disabled). - Allowlist групп и требования mention.
- Отсутствующие разрешения/scopes API канала.
mention required→ сообщение проигнорировано policy упоминаний в группе.pairing/ следы ожидающего approval → отправитель не одобрен.missing_scope,not_in_channel,Forbidden,401/403→ проблема auth/разрешений канала.
Доставка Cron и Heartbeat
Если Cron или Heartbeat не выполнился или не доставился, сначала проверьте состояние планировщика, затем цель доставки.- Cron включен и указано следующее пробуждение.
- Статус истории запусков задания (
ok,skipped,error). - Причины пропуска Heartbeat (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Распространенные сигнатуры
Распространенные сигнатуры
cron: scheduler disabled; jobs will not run automatically→ cron отключен.cron: timer tick failed→ сбой такта планировщика; проверьте ошибки файлов, логов или среды выполнения.heartbeat skippedсreason=quiet-hours→ вне окна активных часов.heartbeat skippedсreason=empty-heartbeat-file→HEARTBEAT.mdсуществует, но содержит только пустые строки, комментарий, заголовок, блок кода или каркас пустого чек-листа, поэтому OpenClaw пропускает вызов модели.heartbeat skippedсreason=no-tasks-due→HEARTBEAT.mdсодержит блокtasks:, но ни одна задача не должна выполняться на этом такте.heartbeat: unknown accountId→ недопустимый идентификатор аккаунта для целевого получателя Heartbeat.heartbeat skippedсreason=dm-blocked→ цель Heartbeat определена как назначение в стиле личного сообщения, аagents.defaults.heartbeat.directPolicy(или переопределение для агента) задано какblock.
Node сопряжен, инструмент не работает
Если узел сопряжен, но инструменты не работают, изолируйте состояние переднего плана, разрешений и одобрений.- Node онлайн с ожидаемыми возможностями.
- Разрешения ОС для камеры, микрофона, местоположения и экрана.
- Состояние одобрений exec и allowlist.
NODE_BACKGROUND_UNAVAILABLE→ приложение узла должно быть на переднем плане.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ отсутствует разрешение ОС.SYSTEM_RUN_DENIED: approval required→ ожидается одобрение exec.SYSTEM_RUN_DENIED: allowlist miss→ команда заблокирована allowlist.
Инструмент браузера не работает
Используйте это, когда действия инструмента браузера не выполняются, хотя сам Gateway исправен.- Задан ли
plugins.allowи включает ли онbrowser. - Действительный путь к исполняемому файлу браузера.
- Доступность профиля CDP.
- Доступность локального Chrome для профилей
existing-session/user.
Сигнатуры Plugin / исполняемого файла
Сигнатуры Plugin / исполняемого файла
unknown command "browser"илиunknown command 'browser'→ встроенный Plugin браузера исключен черезplugins.allow.- инструмент браузера отсутствует / недоступен при
browser.enabled=true→plugins.allowисключаетbrowser, поэтому Plugin не загрузился. Failed to start Chrome CDP on port→ не удалось запустить процесс браузера.browser.executablePath not found→ настроенный путь недействителен.browser.cdpUrl must be http(s) or ws(s)→ настроенный URL CDP использует неподдерживаемую схему, напримерfile:илиftp:.browser.cdpUrl has invalid port→ настроенный URL CDP содержит неверный порт или порт вне допустимого диапазона.Playwright is not available in this gateway build; '<feature>' is unsupported.→ в текущей установке Gateway отсутствует основная зависимость среды выполнения браузера; переустановите или обновите OpenClaw, затем перезапустите Gateway. Снимки ARIA и базовые скриншоты страниц все еще могут работать, но навигация, AI-снимки, скриншоты элементов по CSS-селекторам и экспорт PDF остаются недоступны.
Сигнатуры Chrome MCP / existing-session
Сигнатуры Chrome MCP / existing-session
Could not find DevToolsActivePort for chrome→ Chrome MCP existing-session пока не смог подключиться к выбранному каталогу данных браузера. Откройте страницу инспектирования браузера, включите удаленную отладку, оставьте браузер открытым, подтвердите первый запрос на подключение, затем повторите попытку. Если состояние входа в аккаунт не требуется, предпочитайте управляемый профильopenclaw.No Chrome tabs found for profile="user"→ в профиле подключения Chrome MCP нет открытых локальных вкладок Chrome.Remote CDP for profile "<name>" is not reachable→ настроенная удаленная конечная точка CDP недоступна с хоста Gateway.Browser attachOnly is enabled ... not reachableилиBrowser attachOnly is enabled and CDP websocket ... is not reachable→ у профиля только для подключения нет доступной цели, либо HTTP-конечная точка ответила, но WebSocket CDP все равно не удалось открыть.
Сигнатуры элемента / скриншота / загрузки
Сигнатуры элемента / скриншота / загрузки
fullPage is not supported for element screenshots→ запрос скриншота совместил--full-pageс--refили--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ вызовы скриншотов Chrome MCP /existing-sessionдолжны использовать захват страницы или--refиз снимка, а не CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ хукам загрузки Chrome MCP нужны ссылки снимков, а не CSS-селекторы.existing-session file uploads currently support one file at a time.→ отправляйте одну загрузку за вызов в профилях Chrome MCP.existing-session dialog handling does not support timeoutMs.→ хуки диалогов в профилях Chrome MCP не поддерживают переопределение тайм-аута.existing-session type does not support timeoutMs overrides.→ опуститеtimeoutMsдляact:typeв профиляхprofile="user"/ Chrome MCP existing-session или используйте управляемый/CDP-профиль браузера, когда требуется пользовательский тайм-аут.existing-session evaluate does not support timeoutMs overrides.→ опуститеtimeoutMsдляact:evaluateв профиляхprofile="user"/ Chrome MCP existing-session или используйте управляемый/CDP-профиль браузера, когда требуется пользовательский тайм-аут.response body is not supported for existing-session profiles yet.→ дляresponsebodyпо-прежнему требуется управляемый браузер или сырой профиль CDP.- устаревшие переопределения области просмотра / темного режима / локали / офлайн-режима в профилях только для подключения или удаленных CDP-профилях → выполните
openclaw browser stop --browser-profile <name>, чтобы закрыть активный сеанс управления и освободить состояние эмуляции Playwright/CDP без перезапуска всего Gateway.
Если вы обновились и что-то внезапно сломалось
Большинство поломок после обновления связано с дрейфом конфигурации или с тем, что теперь применяются более строгие значения по умолчанию.1. Поведение аутентификации и переопределения URL изменилось
1. Поведение аутентификации и переопределения URL изменилось
- Если
gateway.mode=remote, вызовы CLI могут быть направлены на удаленный адрес, хотя ваш локальный сервис исправен. - Явные вызовы с
--urlне откатываются к сохраненным учетным данным.
gateway connect failed:→ неверная целевая URL.unauthorized→ конечная точка доступна, но аутентификация неверна.
2. Защитные ограничения привязки и аутентификации стали строже
2. Защитные ограничения привязки и аутентификации стали строже
- Привязки не к loopback (
lan,tailnet,custom) требуют действительного пути аутентификации Gateway: аутентификации по общему токену/паролю или корректно настроенного развертыванияtrusted-proxyне к loopback. - Старые ключи вроде
gateway.tokenне заменяютgateway.auth.token.
refusing to bind gateway ... without auth→ привязка не к loopback без действительного пути аутентификации Gateway.Connectivity probe: failedпри работающей среде выполнения → Gateway жив, но недоступен с текущими auth/url.
3. Состояние сопряжения и идентичности устройства изменилось
3. Состояние сопряжения и идентичности устройства изменилось
- Ожидающие одобрения устройств для панели управления/узлов.
- Ожидающие одобрения сопряжения DM после изменений политики или идентичности.
device identity required→ аутентификация устройства не выполнена.pairing required→ отправитель/устройство должны быть одобрены.