Усунення неполадок gateway
Ця сторінка є детальним посібником. Почніть із /help/troubleshooting, якщо спочатку хочете пройти швидкий потік первинної діагностики.Послідовність команд
Спочатку виконайте ці команди в такому порядку:openclaw gateway statusпоказуєRuntime: runningіRPC probe: ok.openclaw doctorне повідомляє про блокувальні проблеми конфігурації/служб.openclaw channels status --probeпоказує живий стан транспорту для кожного облікового запису та, де це підтримується, результати probe/audit, як-отworksабоaudit ok.
Anthropic 429: для довгого контексту потрібне додаткове використання
Використовуйте це, коли логи/помилки містять:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Вибрана модель Anthropic Opus/Sonnet має
params.context1m: true. - Поточні облікові дані Anthropic не мають права на використання довгого контексту.
- Запити збійно завершуються лише для довгих сесій/запусків моделі, яким потрібен beta-шлях 1M.
- Вимкніть
context1mдля цієї моделі, щоб повернутися до звичайного вікна контексту. - Використайте облікові дані Anthropic, які мають право на запити з довгим контекстом, або перейдіть на ключ Anthropic API.
- Налаштуйте резервні моделі, щоб виконання продовжувалося, коли запити Anthropic з довгим контекстом відхиляються.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
Локальний OpenAI-compatible backend проходить прямі probe, але збоять запуски агента
Використовуйте це, коли:curl ... /v1/modelsпрацює- малі прямі виклики
/v1/chat/completionsпрацюють - запуски моделі OpenClaw збоять лише під час звичайних ходів агента
- прямі малі виклики успішні, але запуски OpenClaw збоять лише на більших prompt
- помилки backend про те, що
messages[].contentочікує рядок - збої backend, які з’являються лише при більшій кількості токенів у prompt або в повних prompt середовища виконання агента
messages[...].content: invalid type: sequence, expected a string→ backend відхиляє структуровані частини вмісту Chat Completions. Виправлення: встановітьmodels.providers.<provider>.models[].compat.requiresStringContent: true.- прямі малі запити успішні, але ходи агента OpenClaw збоять через збої backend/моделі
(наприклад, Gemma у деяких збірках
inferrs) → транспорт OpenClaw імовірно вже налаштований правильно; проблема в тому, що backend не справляється з більшою формою prompt середовища виконання агента. - після вимкнення tools збоїв стає менше, але вони не зникають → схеми tools були частиною навантаження, але решта проблеми все ще пов’язана з upstream місткістю моделі/сервера або помилкою backend.
- Встановіть
compat.requiresStringContent: trueдля backend Chat Completions, які підтримують лише рядковий вміст. - Встановіть
compat.supportsTools: falseдля моделей/backend, які не можуть надійно обробляти поверхню схем tools OpenClaw. - За можливості зменште навантаження prompt: менший bootstrap workspace, коротша історія сесії, легша локальна модель або backend із кращою підтримкою довгого контексту.
- Якщо прямі малі запити й далі проходять, а ходи агента OpenClaw усе ще збоять всередині backend, розглядайте це як обмеження upstream сервера/моделі й створіть там repro з формою payload, яка приймається.
- /gateway/local-models
- /gateway/configuration
- /gateway/configuration-reference#openai-compatible-endpoints
Немає відповідей
Якщо канали працюють, але ніхто не відповідає, перевірте маршрутизацію та політики перед тим, як щось перепідключати.- Pairing очікує на розгляд для відправників у DM.
- Обмеження згадок у групах (
requireMention,mentionPatterns). - Невідповідності allowlist каналу/групи.
drop guild message (mention required→ повідомлення групи ігнорується, доки немає згадки.pairing request→ відправнику потрібне схвалення.blocked/allowlist→ відправника/канал відфільтровано політикою.
Підключення dashboard/control UI
Коли dashboard/control UI не може підключитися, перевірте URL, режим auth і припущення про безпечний контекст.- Правильний URL probe і URL dashboard.
- Невідповідність режиму auth/токена між клієнтом і gateway.
- Використання HTTP там, де потрібна ідентичність пристрою.
device identity required→ небезпечний контекст або відсутня auth пристрою.origin not allowed→Originбраузера відсутній уgateway.controlUi.allowedOrigins(або ви підключаєтеся з browser origin не на loopback без явного allowlist).device nonce required/device nonce mismatch→ клієнт не завершує flow auth пристрою на основі challenge (connect.challenge+device.nonce).device signature invalid/device signature expired→ клієнт підписав неправильний payload (або використав застарілу часову мітку) для поточного handshake.AUTH_TOKEN_MISMATCHзcanRetryWithDeviceToken=true→ клієнт може виконати одну довірену повторну спробу з кешованим токеном пристрою.- Ця повторна спроба з кешованим токеном повторно використовує кешований набір scope, збережений разом із paired
токеном пристрою. Виклики з явними
deviceToken/ явнимиscopesзберігають запитаний ними набір scope. - Поза цим шляхом повторної спроби пріоритет auth для connect такий:
спочатку явний shared token/password, потім явний
deviceToken, потім збережений токен пристрою, потім bootstrap token. - На асинхронному шляху Tailscale Serve Control UI невдалі спроби для того самого
{scope, ip}серіалізуються до того, як limiter зафіксує збій. Тому дві хибні одночасні повторні спроби від того самого клієнта можуть призвести доretry laterдля другої спроби замість двох звичайних невідповідностей. too many failed authentication attempts (retry later)від loopback-клієнта з browser-origin → повторні збої з того самого нормалізованогоOriginтимчасово блокуються; інший localhost origin використовує окремий bucket.- повторюване
unauthorizedпісля цієї повторної спроби → розсинхронізація shared token/device token; оновіть конфігурацію токена та за потреби повторно схваліть/перегенеруйте токен пристрою. gateway connect failed:→ неправильний host/port/url призначення.
Швидка таблиця кодів деталей auth
Використовуйтеerror.details.code з невдалої відповіді connect, щоб вибрати наступну дію:
| Код деталей | Значення | Рекомендована дія |
|---|---|---|
AUTH_TOKEN_MISSING | Клієнт не надіслав обов’язковий shared token. | Вставте/задайте токен у клієнті та повторіть спробу. Для шляхів dashboard: openclaw config get gateway.auth.token, а потім вставте його в налаштуваннях Control UI. |
AUTH_TOKEN_MISMATCH | Shared token не збігся з токеном auth gateway. | Якщо canRetryWithDeviceToken=true, дозвольте одну довірену повторну спробу. Повторні спроби з кешованим токеном повторно використовують збережені схвалені scope; виклики з явними deviceToken / scopes зберігають запитані scope. Якщо й далі не вдається, виконайте контрольний список відновлення після розсинхронізації токена. |
AUTH_DEVICE_TOKEN_MISMATCH | Кешований токен для конкретного пристрою застарів або відкликаний. | Перегенеруйте/повторно схваліть токен пристрою через CLI devices, а потім перепідключіться. |
PAIRING_REQUIRED | Ідентичність пристрою відома, але не схвалена для цієї ролі. | Схваліть запит, що очікує: openclaw devices list, потім openclaw devices approve <requestId>. |
- чекає на
connect.challenge - підписує payload, прив’язаний до challenge
- надсилає
connect.params.device.nonceз тим самим nonce challenge
openclaw devices rotate / revoke / remove неочікувано заборонено:
- сесії з токеном paired-device можуть керувати лише власним пристроєм, якщо
виклик також не має
operator.admin openclaw devices rotate --scope ...може запитувати лише ті operator scope, які вже має сесія виклику
- /web/control-ui
- /gateway/configuration (режими auth gateway)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
Служба gateway не працює
Використовуйте це, коли службу встановлено, але процес не залишається активним.Runtime: stoppedз підказками щодо виходу.- Невідповідність конфігурації служби (
Config (cli)vsConfig (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 без коректного шляху auth gateway (token/password або trusted-proxy, якщо налаштовано).another gateway instance is already listening/EADDRINUSE→ конфлікт порту.Other gateway-like services detected (best effort)→ існують застарілі або паралельні модулі launchd/systemd/schtasks. У більшості конфігурацій має бути один gateway на машину; якщо вам справді потрібно більше одного, ізолюйте порти + конфігурацію/стан/workspace. Див. /gateway#multiple-gateways-same-host.
Попередження gateway probe
Використовуйте це, колиopenclaw gateway probe до чогось дістається, але все одно виводить блок попереджень.
warnings[].codeіprimaryTargetIdу JSON-виводі.- Чи пов’язане попередження з резервним переходом через SSH, кількома gateway, відсутніми scope або нерозв’язаними auth refs.
SSH tunnel failed to start; falling back to direct probes.→ налаштування SSH не вдалося, але команда все одно спробувала прямі налаштовані/loopback-цілі.multiple reachable gateways detected→ відповіла більше ніж одна ціль. Зазвичай це означає навмисну конфігурацію з кількома gateway або застарілі/дубльовані listeners.Probe diagnostics are limited by gateway scopes (missing operator.read)→ підключення спрацювало, але детальний RPC обмежений scope; виконайте pairing ідентичності пристрою або використайте облікові дані зoperator.read.- нерозв’язаний текст попередження
gateway.auth.*/gateway.remote.*SecretRef → auth-матеріал був недоступний у цьому шляху команди для цілі, що не пройшла перевірку.
Канал підключено, але повідомлення не проходять
Якщо стан каналу — connected, але потік повідомлень не працює, зосередьтеся на політиках, дозволах і правилах доставки, специфічних для каналу.- Політика DM (
pairing,allowlist,open,disabled). - Allowlist групи та вимоги до згадок.
- Відсутні дозволи/scope API каналу.
mention required→ повідомлення ігнорується через політику згадок у групі.pairing/ сліди очікування схвалення → відправника не схвалено.missing_scope,not_in_channel,Forbidden,401/403→ проблема з auth/дозволами каналу.
Доставка cron і heartbeat
Якщо cron або heartbeat не запустився чи не доставився, спочатку перевірте стан scheduler, а вже потім ціль доставки.- Cron увімкнений і присутній час наступного пробудження.
- Стан історії запусків job (
ok,skipped,error). - Причини пропуску heartbeat (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ cron вимкнено.cron: timer tick failed→ збій tick scheduler; перевірте помилки файлів/логів/runtime.heartbeat skippedзreason=quiet-hours→ поза межами вікна активних годин.heartbeat skippedзreason=empty-heartbeat-file→HEARTBEAT.mdіснує, але містить лише порожні рядки / markdown-заголовки, тому OpenClaw пропускає виклик моделі.heartbeat skippedзreason=no-tasks-due→HEARTBEAT.mdмістить блокtasks:, але на цьому tick жодне із завдань не підлягає виконанню.heartbeat: unknown accountId→ недійсний account id для цілі доставки heartbeat.heartbeat skippedзreason=dm-blocked→ ціль heartbeat була визначена як призначення у стилі DM, тоді якagents.defaults.heartbeat.directPolicy(або перевизначення для конкретного агента) має значенняblock.
Збій paired tool вузла
Якщо вузол paired, але tools не працюють, ізолюйте стан foreground, дозволи та схвалення.- Вузол online з очікуваними capability.
- Надані дозволи ОС для camera/mic/location/screen.
- Стан exec approvals і allowlist.
NODE_BACKGROUND_UNAVAILABLE→ застосунок вузла має бути у foreground.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ відсутній дозвіл ОС.SYSTEM_RUN_DENIED: approval required→ схвалення exec очікує.SYSTEM_RUN_DENIED: allowlist miss→ команду заблоковано через allowlist.
Збій browser tool
Використовуйте це, коли дії browser tool завершуються з помилкою, хоча сам gateway справний.- Чи задано
plugins.allowі чи включає воноbrowser. - Коректний шлях до виконуваного файла браузера.
- Досяжність профілю CDP.
- Наявність локального Chrome для профілів
existing-session/user.
unknown command "browser"абоunknown command 'browser'→ bundled browser plugin виключено черезplugins.allow.- browser tool відсутній / недоступний, хоча
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 має некоректний або неприпустимий порт.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 endpoint відповів, але CDP WebSocket усе одно не вдалося відкрити.Playwright is not available in this gateway build; '<feature>' is unsupported.→ у поточному встановленні gateway відсутній повний пакет Playwright; знімки ARIA і базові знімки сторінки все ще можуть працювати, але навігація, AI snapshots, знімки елементів за CSS-селекторами та експорт PDF залишаються недоступними.fullPage is not supported for element screenshots→ запит screenshot поєднав--full-pageз--refабо--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ виклики screenshot для Chrome MCP /existing-sessionмають використовувати захоплення сторінки або snapshot--ref, а не CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ hooks завантаження файлів у Chrome MCP потребують snapshot refs, а не CSS-селекторів.existing-session file uploads currently support one file at a time.→ для профілів Chrome MCP надсилайте одне завантаження за виклик.existing-session dialog handling does not support timeoutMs.→ hooks діалогів у профілях Chrome MCP не підтримують перевизначення timeout.response body is not supported for existing-session profiles yet.→responsebodyпоки що потребує керованого браузера або сирого профілю CDP.- застарілі перевизначення viewport / dark-mode / locale / offline для профілів лише для приєднання або віддалених CDP-профілів → виконайте
openclaw browser stop --browser-profile <name>, щоб закрити активну сесію керування та скинути стан емуляції Playwright/CDP без перезапуску всього gateway.
Якщо ви оновилися і щось раптово зламалося
Більшість проблем після оновлення — це дрейф конфігурації або суворіші стандартні значення, які тепер застосовуються.1) Змінилася поведінка auth і перевизначення URL
- Якщо
gateway.mode=remote, виклики CLI можуть спрямовуватися на remote, тоді як ваша локальна служба працює нормально. - Явні виклики
--urlне переходять до збережених облікових даних.
gateway connect failed:→ неправильна URL-ціль.unauthorized→ endpoint досяжний, але auth неправильна.
2) Guardrails для bind і auth стали суворішими
- Bind не до loopback (
lan,tailnet,custom) потребують коректного шляху auth gateway: shared token/password auth або правильно налаштованого розгортанняtrusted-proxyне на loopback. - Старі ключі на кшталт
gateway.tokenне замінюютьgateway.auth.token.
refusing to bind gateway ... without auth→ bind не до loopback без коректного шляху auth gateway.RPC probe: failedколи runtime працює → gateway живий, але недоступний із поточними auth/url.
3) Змінився стан pairing та ідентичності пристрою
- Pending-схвалення пристроїв для dashboard/nodes.
- Pending-схвалення pairing для DM після змін політики або ідентичності.
device identity required→ auth пристрою не виконано.pairing required→ відправника/пристрій потрібно схвалити.