2026 OpenClaw openclaw update после upgrade: шлюз не стартует, каналы пусты, модель 401 — update status, Update restart pending и plugin load failed послойная матрица решений
Вы выполнили openclaw update, npm сообщил об успехе, а через минуты шлюз не поднимается, список каналов пуст или каждый вызов модели отдаёт 401. Официальный блок After an update требует update status, контроль handoff Update restart, затем gateway status --deep, doctor --fix и gateway restart. Этот материал превращает лестницу в матрицу решений на первый час — включая plugin load failed: dependency tree corrupted, OAuth shadow credentials и фикс v2026.5.20, запрещающий тихое переключение Node шлюза при нескольких установках Node на хосте.
1. Четырёхслойная triage: не сводите все post-upgrade сбои к одному багу
Команды, которые гоняют еженедельные патчи OpenClaw на Apple Silicon или VPS, часто сжигают смену на перезапуск launchd/systemd, хотя корень на слой выше или ниже демона. Чините слои по порядку — иначе логи противоречат друг другу, а параллельные правки конфига без change control множат регрессии.
- L0 пакет и handoff: установщик успешен, но
openclaw status --allпоказывает Update restart pending или failed. Проблема в handoff обновления, не в firewall Telegram. - L1 процесс шлюза:
Runtime: stopped, конфликт порта или drift CLI/сервиса. Сначала macOS gateway restart или Linux systemd HOME drift. - L2 канальные плагины: процесс жив, но
channels status --probeпуст илиplugin load failed. Раздел 6. Probe зелёный без ответа → канал онлайн, probe зелёный, без ответа. - L3 credentials модели: каналы здоровы, чат 401/403.
doctor --fixи onboard credentials слои. Старый бинарник не пишет service config → split brain.
Для ежедневных «нет ответа» вне окон upgrade держите под рукой официальную лестницу диагностики. Здесь — шестьдесят минут сразу после openclaw update, когда пропуск одной команды бьёт по throughput Metal-ядра и стабильности RPC.
Скрипты update решают semver-установку; production-ready — handoff: recycle сервиса, rebuild registry плагинов, очистка credential shadows, выравнивание пути Node. Смешивание даёт пустые каналы и intermittent 401, которые команда часами крутит в мессенджерах вместо одного update status --json.
На Apple Silicon полезно смотреть не только средний CPU по пакету, а одно ядро на 100% при chat.history или plugin load — типичная картина «процесс жив, RPC не готов». Снимайте per-process CPU и disk read B/s в одном окне с gateway status --deep, иначе on-call спутает L0 handoff с L4 session indexing.
Не смешивайте post-upgrade triage со split brain без proof: split brain требует выравнивания binary; handoff часто лечится одной командой из status. Когда оба состояния идут подряд — сначала binary, затем эта лестница — иначе rollback откатит не тот слой.
2. Три частых болевых точки (нумерация)
Боль первая: пустые каналы за сетевой outage. После upgrade в Channels ещё видны мессенджеры, но инстансы не регистрируются — в логе старта plugin load failed: dependency tree corrupted; run openclaw doctor --fix. nginx/Tailscale не чинят дерево зависимостей, падающее до конструкторов каналов.
Боль вторая: правка конфига при pending Update restart. Незавершённый handoff → пропуск hot reload, Invalid config, service unit на полузаписанный state. Сначала команда из status --all.
Боль третья: ротация всех API keys на первом 401. Re-OAuth на shared profile не гарантирует инвалидацию устаревших per-agent OAuth auth shadows. doctor --fix точечнее массовой ротации, ломающей staging и CI-клоны с теми же профилями.
Дополнительно: второй openclaw update при красном handoff наслаивает частичные установки. Заморозьте параллельные изменения до зелёной лестницы из раздела 4.
Четвёртая боль: beta-канал на production ради одной фичи из release notes. После upgrade — пустые каналы или respawn без логов. Pin stable, rollback-semver в тикете, beta только на изолированном remote Mac clone, не на боевом launchd.
На каждое upgrade-окно три скрина: Update restart, фрагмент update status --json, Gateway version из gateway status --deep. Этого хватает в большинстве postmortem, чтобы отделить L0 от L2 без полного log dump наружу.
3. Матрица симптом → первое доказательство (цитируемая)
| Главный симптом | Первое доказательство | Вероятный слой | Следующие шаги (≤3 команды) |
|---|---|---|---|
| Update только что завершён, CLI тормозит | status --all → Update restart |
L0 handoff | update status --json → restart/install по подсказке |
| Список каналов пуст | plugin load failed в Channels | L2 дерево плагинов | doctor --fix → gateway restart |
| 401 только у части agents | Логи provider 401; doctor про shadow | L3 credentials | doctor --fix → retest одного agent |
| gateway install/restart отклонён | meta.lastTouchedVersion > CLI binary |
Split brain | Выровнять PATH/binary → статья split brain |
| Память растёт без OOM | gateway status --deep + stability hints |
Session/runtime plugin | Архив больших .jsonl → редакция логов production |
| Рестарт висит 3–4 минуты | CPU 100%; chat.history в логах | Индексация session | rollback v2026.4.26 |
Активную строку в тикет до расхождения параллельных респондеров. Матрица консервативна: один proof-команда лучше спекулятивной переустановки, стирающей rollback-артефакты.
4. Официальная лестница после update (How-to, цель 15 минут)
- Заморозить параллельные правки: в окне upgrade не трогать nginx, не ротировать Telegram, не переустанавливать optional plugins.
- Полный статус:
openclaw status --all; скрин строки Update restart в change record. - Update JSON:
openclaw update status --json; сохранить pending/failed, канал stable/beta, следующую команду. - Глубокий шлюз:
openclaw gateway status --deep;Runtime,Config (cli)vsConfig (service), порт, Gateway version. - Авторемонт:
openclaw doctor --fixдля деревьев плагинов, OAuth shadows, устаревших портов сервиса. - Контролируемый рестарт:
openclaw gateway restart; при fail →openclaw gateway install --force, снова restart. - Приёмка каналов:
openclaw channels status --probeдоworks/audit ok.
openclaw status --all
openclaw update status --json
openclaw gateway status --deep
openclaw doctor --fix
openclaw gateway restart
openclaw channels status --probe
Наблюдение: второй терминал openclaw logs --follow. Токены редактировать перед вложением — чеклист редакции логов.
Таймстампы каждого шага. На выделенном always-on хосте handoff часто cleared < 5 минут; ноутбук со сном > 20 минут и ложный split brain — типичный паттерн без dedicated gateway на Metal.
Если нужен gateway install --force, зафиксируйте причину в change ticket: незавершённый bootout, неверный Node path, отказ из-за meta.lastTouchedVersion. Без этого следующая смена повторит force вслепую и сотрёт валидный rollback path.
channels status --probe запускайте только при стабильном Runtime. Probe на stopped gateway даёт ложнозелёные дашборды, которые проверяют HTTP, а не регистрацию плагинов. Добавьте короткий test-DM или tool call на целевом agent.
5. Update restart pending и провал handoff
Update restart в openclaw status и status --all. Pending: handoff не завершил recycle supervised gateway. Failed включает следующую команду — часто отсутствующий gateway restart, service unit со старым Node path, незавершённый launchd bootout.
При fail handoff не запускайте сразу второй openclaw update. Читайте update status --json: канал, target tag, блокер. Production pin stable и semver rollback в тикете. Beta около v2026.5.19-beta — тихие respawn-петли.
Если gateway status --deep держит WebSocket health > 10 с, а каналы пусты — размер session-файлов; v2026.4.26 chat.history имитирует failed restart.
На Linux коррелируйте journalctl с update status --json. Часто: upgrade под admin, systemd стартует gateway под service account с HOME drift — пустой merge config после rewrite unit.
На macOS после failed handoff сравните npm global upgrade пользователя и launchd job root/other user. gateway status --deep показывает Config(cli) vs Config(service) — любое расхождение блокирует handoff, не Telegram.
Держите rollback-скрипт на предыдущий stable tag с немедленным status --all. Цель: < 10 минут от решения до cleared или осознанного rollback — измеримо в change process.
6. plugin load failed: dependency tree corrupted
Записи каналов в конфиге есть, регистрация плагина падает до инстанцирования каналов. Поддерживаемый fix: openclaw doctor --fix, не слепое удаление node_modules.
Minimal repro: закомментируйте некритичные plugins.entries, оставьте один messenger + core provider, restart, probe. Включайте по одному — изолированный пакет vs global drift дерева модулей Node, который грузит service.
Отличайте startup load от MCP runtime leaks. Dependency tree — первые секунды; рост памяти через часы — другие runbook. После doctor всё красное — Gateway version и абсолютный Node path из gateway status --deep; multi-Node drift живёт и после v2026.5.20.
Сохраняйте вывод doctor и список plugins до и после --fix. Слепое удаление extensions без doctor повышает риск рассинхрона credentials и plugin metadata — особенно на хостах с rsync-снапшотами ~/.openclaw между staging и prod.
7. Provider 401 и OAuth shadows после upgrade
Часть agents 401, primary ok → OAuth shadows. Re-auth на shared profile не гарантирует инвалидацию per-agent shadows. doctor --fix удаляет устаревшие копии.
Все модели 401: пустой ~/.openclaw/credentials/? systemd EnvironmentFile или launchd env инжектит secrets до старта? Rewrite unit после upgrade вскрывает ordering bugs, скрытые в интерактивной shell.
Cloudflare AI Gateway + Anthropic (2026.5.6–5.7): регресс dual-auth headers. После upgrade проверьте forwarding, не одну key rotation.
Сверьте слои credentials с onboard-руководством: env, file profiles, provider switching — после recycle probe зелёный, chat может идти другим route.
После doctor --fix тестируйте один failing agent минимальным prompt, не сразу prod group chat. Так отделяете shadow-401 от rate-limit 429 и outage провайдера. Фиксируйте provider, agent id, timestamp — базовый набор для повторяемых postmortem на высоконагруженных Metal-хостах.
8. Multi-Node и v2026.5.20
v2026.5.20 чинит тихое переключение Node шлюза при нескольких Node и openclaw update. Путь Node — явная инфраструктура:
- Абсолютный Node path в launchd
ProgramArgumentsили systemdExecStart. - До/после upgrade:
which openclaw,openclaw --version, Gateway version вgateway status --deep. - Drift CLI/service:
gateway install --force, затем restart.
Homebrew Node upgrades на macOS и nvm default на Linux — топ-триггеры CLI-new/daemon-old даже после guardrail v2026.5.20. Ожидаемые digest в runbook — один grep на дежурстве.
9. Метрики для postmortem (числовые baseline)
- Длительность handoff: минуты до Update restart cleared (цель < 5 на dedicated host).
- Время probe: секунды до all-green channels probe (цель < 120).
- Окно rollback: артефакт предыдущего stable tag ≥ 72 часа.
- Config churn: строк diff не auto-generated за окно (цель < 50).
- 401 recovery: минуты до успешного chat одного agent после doctor --fix при shadows (цель < 10).
Пять чисел в шаблон change ticket. Рост handoff quarter-over-quarter — аудит sleep policy на ноутбуках-gateway и перенос production на always-on remote Mac с предсказуемым Metal throughput.
10. FAQ
В: Пропустить update status и сразу restart? Не рекомендуется. Restart при незавершённом handoff зацикливается; status даёт короткий путь.
В: doctor --fix перепишет openclaw.json? Может починить prefix, ports, plugin trees. Snapshot перед major. Invalid → .rejected.*.
В: Связь со split brain? Split brain: старый binary не пишет новый config. Здесь: новый binary, handoff/plugins/credentials не выровнены. Цепочка возможна: сначала split brain, потом эта лестница.
11. Итог: update ставит semver — handoff возвращает production
openclaw update двигает semver. Доступность зависит от завершённого Update restart handoff, целых plugin dependency trees, service unit на нужном Node и OAuth shadows на актуальном shared profile после re-auth. Сон ноутбука, hibernate WSL, слабый VPS и общая рабочая станция dev+gateway раздувают fail handoff — пустые каналы и intermittent 401, пока команда крутит messenger tokens.
Фиксация шлюза на always-on macOS remote node с явными Node paths в launchd плюс SFTP/rsync snapshots ~/.openclaw делает 15-минутную лестницу повторяемой и auditable. Аренда remote Mac SFTPMAC — Apple Silicon 24/7 для OpenClaw и CI/CD, связка с официальной лестницей, split brain recovery, gateway restart и редакцией логов. Dedicated арендованный Mac обычно выигрывает у co-hosting на машине, которая спит, casual обновляет Node или без snapshot discipline — особенно когда нужны стабильный RPC, Metal и предсказуемые upgrade-окна под высокочастотные релизы 2026 года.