2026 OpenClaw после деплоя — тройной баг
Gateway running, Telegram без ответа, Chrome Relay отвалился и 409 — чеклист приёмки

openclaw gateway status уже Runtime: running, в Telegram тишина, бейдж Chrome Relay серый, в логах 409 Conflict — классический «тройной баг» пост-деплоя 2026: control plane жив, data plane каналов — нет. Для тех, кто прошёл install и тащит OpenClaw в 7×24: четырёхзондовый прогон, таблица симптомов, шестишаговый acceptance runbook и FAQ. Разводка с полу-установкой, channels probe, gateway not ready — чтобы не править конфиг не в той фазе.

01

Тройной баг после деплоя: почему Gateway зелёный, а каналы молчат?

«Install OK» ≠ «prod ready». В OpenClaw 2026 это три независимых линка: процесс Gateway, каналы (Telegram / WhatsApp и т.д.), browser Relay. Первый держит RPC/control; остальные завязаны на token, webhook mode, pairing, WebSocket в расширении и Upgrade на прокси. Два+ пункта из списка ниже — идите по этой статье, а не переустанавливайте весь хост.

  • 01

    Telegram в ноль: бот online, inbound в логах пусто — типично 409 (два Gateway на одном BOT_TOKEN) или залипший Webhook режет polling.

  • 02

    409 Conflict в логе: тот же BOT_TOKEN жрут второй Gateway, старый Docker или локальный debug long-poll'ом.

  • 03

    Relay badge горит, табов нет: расширение смотрит не туда (порт/хост); Nginx без Upgrade: websocket. С 2026.3.22+ трогали relay driver — cross-host сверяйте с release notes.

  • 04

    channels probe fail, gateway status OK: чаще pairing не approve или dmPolicy режет — см. channels probe, это не «Gateway не стоит».

  • 05

    Remote CLI Unauthorized: ключи уехали с gateway.token на gateway.auth.tokenopenclaw doctor --generate-gateway-token, restart.

  • 06

    18789 EADDRINUSE: «running» на бумаге, PID зомби — чистим порт, gateway restart; не размазывайте channel config раньше времени.

02

Таблица маршрутизации: что читать? Симптом → дока

Что видитеЭта статья (post-deploy triple)Куда переключиться
install.sh OK, Gateway нетнетПолу-установка
gateway status: not ready / OOMнетgateway not ready
running + Telegram 409 / тишинада+ pairing: channels probe
running + Relay отвалдапубличный expose → security Gateway / Tailscale
models Unauthorizedчастично (token key)Auth debug

«Gateway probe OK» = control plane дышит. Каналы и browser Relay проходят свою приёмку отдельно — иначе деплой не закрыт.

03

Шестишаговый runbook: четыре зонда → убить 409 → поднять Relay

Порядок жёсткий: сначала докажите один consumer на token, потом pairing и Relay URL. Пока 409 жив — не спамьте openclaw gateway restart, только шум в логах.

  1. 01

    Четыре зонда (~5 мин): openclaw statusopenclaw gateway status --deepopenclaw channels status --probeopenclaw doctor --deep; в другом терминале openclaw logs --follow на inbound.

  2. 02

    Healthcheck Telegram token: curl "https://api.telegram.org/bot<TOKEN>/getMe"; если когда-то вешали webhook — deleteWebhook, возвращаем polling.

  3. 03

    Убить 409: стоп всех лишних Gateway/debug (старый Docker, ноут коллеги с тем же ботом). Ровно один инстанс держит token глобально.

  4. 04

    Pairing & dmPolicy: openclaw pairing approve telegram <CODE>; probe всё ещё красный — крутите dmPolicy по channels-статье, не светите Gateway на 0.0.0.0 «на удачу».

  5. 05

    Chrome Relay: URL в расширении = реальный listen (локально часто ws://127.0.0.1:18789; за reverse proxy — wss:// + Upgrade). Cross-host — проверьте relay changes 2026.3+.

  6. 06

    Restart & re-check: openclaw doctor --fixopenclaw gateway restart → снова channels status --probe. macOS 24/7: launchd; Linux: Ubuntu systemd.

bash
# Четырёхзондовый прогон после деплоя + чистка Telegram webhook
openclaw status
openclaw gateway status --deep
openclaw channels status --probe
openclaw doctor --deep

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe"
curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteWebhook"

openclaw pairing approve telegram YOUR_CODE
openclaw gateway restart
info

Hint: если Gateway реально не слушает — сначала полу-установка, потом сюда. Иначе снесёте рабочий конфиг не в той фазе.

warning

Внимание: bind на 0.0.0.0 «для дебага» — плохая идея в prod. Держите loopback + Tailscale/туннель; ротация token — в auth-статье.

04

Три жёстких тезиса для change ticket + выбор хоста

  • Один token — один consumer: long-polling Telegram в 2026 по-прежнему не терпит двух процессов на одном token. 409 — не «попробуй ещё раз», а mutex by design.
  • Миграция ключей: auth Gateway живёт в gateway.auth.token; ковырять только legacy key = «локальный doctor green, remote CLI 401».
  • Relay ≠ control port: WebSocket расширения должен биться с опубликованным адресом Gateway; без Connection: upgrade на proxy — классика «badge on, tabs off».

Gateway на засыпающем ноуте или shared Mac, где CI жрёт CPU/RAM, — тройной баг вернётся после sleep/update или port fight. Выделенный always-on macOS-узел для 7×24 каналов и Relay — нормальная инженерная ставка. Нужен Mac «как VPS» с SSH, куда можно зашить четырёхзондовый прогон в golden image — аренда Mac Mini в облаке NodeMini обычно бьёт домашний setup: тот же ops-модель, что remote OpenClaw и iOS CI, меньше сценария «дома Gateway спит, в офисе бот жрёт token» и ручных 409.

FAQ

Частые вопросы

Runbook из §3: channels status --probe, потом 409, deleteWebhook, pairing approve. Спеки узла: цены аренды.

Там pairing и dmPolicy. Здесь — Gateway уже up, каналы тихие + Chrome Relay и 409. Читайте обе подряд.

В ряде билдов подкрутили relay driver; cross-host — release notes. Доступ и аудит: help center.