2026 OpenClaw: диагностика после апгрейда split brain, PATH, gateway install --force и doctor в одном согласованном сценарии

После обновления OpenClaw какой именно слом заметили? не стартует gateway, падают зонды RPC или CLI уже «новое», а пользовательский systemd всё ещё указывает на старый путь? Статья для платформы: семь скрытых допущений, чтобы вскрыть split brain (старый и новый бинарники), таблицу симптомов («отпечаток» конфигурации vs токен/удалённый URL), безопасный шестишаговый ранбук (PATH → gateway install --forcegateway restartdoctor) и когда включать «разрушительные» переменные окружения. Ссылки: cron и регрессия после апгрейда, удалённый режим, наблюдаемость.

01

Семь скрытых допущений в постмортеме, за которые «страдает апгрейд»

Официальный troubleshooting: новая версия OpenClaw пишет openclaw.json и маркеры вроде meta.lastTouchedVersion, но если в PATH попадается старый openclaw, чтение ещё может работать — тогда любые установка/перезапуск gateway CLI блокирует, чтобы не смешать метаданные — на практике это называют split brain.

  1. 01

    «npm прошёл» равно «сервис на новом бинарнике»: npm install -g обновляет лишь глобальный префикс; в launchd/systemd --user может торчать старый абсолютный путь — после ребута будет по-старому.

  2. 02

    Смешивать PATH login-shell и среду сервиса: корректный which openclaw в интерактивном сеансе не гарантирует того же окружения демона.

  3. 03

    Не замечать несколько источников установки: Homebrew, официальный скрипт и npm global могут давать несколько бинарников порядком PATH.

  4. 04

    Пропускать gateway install --force после апгрейда: когда сервис и бинарник разъехались, документация просит перезаписать обёртку; разовый ручной старт создаёт мина на следующий ребут.

  5. 05

    Считать любую ошибку doctor признаком порчи JSON: часто это рассогласование стража и бинарника — сначала версии.

  6. 06

    Прыгать между remote и локальным режимами без сохранений конфигов: как в статье remote: openclaw config get gateway.mode, затем куда именно должны попадать зонды.

  7. 07

    После апгрейда смотреть только каналы, не расписание: см. чек-лист cron.

Общая причина: «конфиг читается» ещё не значит «исполнение согласовано». Правильно: отпечаток показывает только, кто последним писал, а бинарь в сервисе нужно проверять отдельно.

02

Симптомы: split brain, дрейф auth, удалённый URL

Таблица, чтобы из «кажется, апгрейд сломался» попасть в подписанную ветку:

Признакскорее split brainскорее auth / сессияскорее remote URL / топология
Ключевые слова doctorпро разницу версий блокирует destructive gatewayкоды token/device почти без привязки к версии бинарникаRPC падает и локальный gateway status --deep указывает не туда
gateway statusповедение runtime явно противоречит CLI --versionruntime есть, всё ещё unauthorizedлокально stopped, удалённый реально поднят
СначалаPATH → gateway install --force → restartротация token / рукопожатие устройстваgateway.remote.url и env сверить с режимом remote

Золотая формулировка проапгрейдной ночи: (A) какой бинарник реально крутится? (B) какой маркёр кто ставил? Сначала согласовать оба пункта, потом уже каналы и cron.

Связка Tailscale / приватный туннель: не путать «туннель есть» и «RPC здоров» — см. статью Tailscale private exposure и двустороннюю проверку.

03

Шесть шагов восстановления (без народных советов)

Порядок важен: при расхождении версий один шаг назад, параллельно не резать конфиг и бинарник.

  1. 01

    Зафиксировать след: openclaw --version, путь из unit если виден, capture doctor.

  2. 02

    Вычистить PATH и алиасы: без TTY тоже which openclawна целевой релиз.

  3. 03

    Один канал поддержки: рекомендованный npm/скрипт — не мешать навсегда старый brew и новый npm.

  4. 04

    Переустановить обёртку сервиса: для того же пользователя после PATH openclaw gateway install --force.

  5. 05

    Холодный рестарт gateway: openclaw gateway restart → статус → RPC.

  6. 06

    Подтверждение: openclaw doctorchannels status --probecron list записан ли по-прежнему?

bash · последовательность диагностики
openclaw --version
command -v openclaw
openclaw gateway status
openclaw doctor
openclaw gateway install --force
openclaw gateway restart
openclaw channels status --probe
info

На заметку: конфликт порта, память или порядок compose — параллельно см. Gateway not ready и closed(1000) RPC, ресурс не спутываем со split brain.

04

Разрушительные переменные окружения: когда вообще уместно «разрешить старый бинарник делать destructive»

Спецификация: «новая конфигурация + старый процесс» — способность испортить диск необратимо. Свежие релизы могут включать блок на destructive gateway операции — ставить переменные OPENCLAW_* только для разового восстановления (имена по текущей документации).

warning

Важно: это не универсальный офф-свитч; узкий сценарий «понимаю риск для метаданных сервиса». По умолчанию переменная не задаётся, пока есть откат в тикете.

Инженерно: поправили PATH → переустановили сервис → полный апгрейд новым бинарником. Даунгрейд — отдельный change с аудитом если поставщик отрезает пакеты.

05

Три измеримых якоря Change Request

Внутренние KPI:

  • Две подписи версии: openclaw --version интерактивно и в unit systemd/launchd — должны совпасть после фикса.
  • Окно destructive действий: если включаются аварийные переменные — длительность, исполнитель, rollback, затем чистый doctor.
  • Бизнес-регрессия: хотя бы один полный cron-цикл и ручной сообщенческий круг перед снятием maintenance — см. политику логов наблюдаемости.

Ноутбуки и общие dev-машины спят и конфликтуют между пользователями. Вынести OpenClaw на удалённый Mac 24/7 с SSH и договорными диском/сетью почти всегда дешевле бесконечных «upgrade и снова split». NodeMini аренда Mac Mini в облаке: фиксированный SSH и выделенные ядра — тарифы цены аренды Mac Mini, онбординг в справочном центре. Читайте фильтром OpenClaw: наблюдаемость → cron → remote → эта заметка про расхождение после апгрейда.

FAQ

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

Маркер «какой OpenClaw последним переписал конфиг» — если PATH всё ещё находит более старый бинарь, охранники могут отказать destructive операциям. Сперва PATH и ранбук, потом правка JSON.

Пока split brain не исключён, список cron может выглядеть здоровым, а исполнение блокируется — закончите раздел три, затем руководство cron. Ещё материалы в подборке OpenClaw.

Сопоставьте gateway.mode, gateway.remote.url и оба gateway status — подробности в remote troubleshooting; мощности — цены.