OpenClaw 2026 クラウドMac バージョンアップグレード障害切り分け: ディスク事前チェック、launchd 残留ジョブ削除と update restart health チェックリスト
JEXCLOUD クラウドMac上で OpenClaw を安定稼働させたあと、openclaw update を実行すると Gateway unhealthy、plugin-runtime-deps ENOSPC、ai.openclaw.update.* launchd ループ exit 127、または「ready だが 0 plugins」の混合バージョン偽成功に直面していませんか。2026年のコミュニティ高頻度事例から、アップグレード失敗の原因は npm のダウンロード速度ではなく、ディスク事前チェックの欠落、launchd 残留 updater ジョブ、restart health 未通過の三類の運用ギャップであることが多いです。本記事はレンタル Mac 上で OpenClaw を稼働中で、バージョン跨ぎアップグレードが必要な開発者と SRE 向けに、アップグレード前意思決定マトリクス、ディスク事前チェックスクリプト、六段階 update + restart health 検収、stale updater job 削除、混合バージョン復旧を提供します(詳細は OpenClaw v2026.5.20 リリースノートを参照)。
読了後、次の三つに答えられるようになります。① アップグレード前に 1TB 拡張すべきか M4 Pro へ移行すべきか。② openclaw gateway status --deep と openclaw doctor で launchd 残留ジョブを特定する方法。③ ENOSPC や false-ready 後、OS 再インストールなしで Gateway を復旧し、リモートペアリングへ接続する手順。
01 OpenClaw update 後 Gateway が起動しない:2026 クラウドMac アップグレードシナリオと五つの痛点
初回インストール onboardやlaunchd Token トラブルシュートとは異なり、本記事は「Gateway 稼働中でローリングアップグレードが必要」なパスに焦点を当てます。SSH でレンタル期間内のクラウドMacにログインし openclaw update を実行、数分で本番復帰を期待するのに launchd 再起動ループに陥る、という状況です。
on-call 振り返りでは、次の五つの痛点が過小評価されがちです。
- plugin-runtime-deps ENOSPC:2026.4.24 付近のバージョンはアップグレード時に
~/.openclaw/plugin-runtime-depsへ bundled 依存関係を展開します。ディスク余裕不足で mid-operation 失敗し、Gateway は ready 表示のまま実際は unhealthy になることがあります(openclaw#71835 参照)。 - stale ai.openclaw.update.* ジョブ:beta アップグレード後、launchd に updater job が残留し exit 127 で Gateway 再起動を繰り返すと、
gateway status --deepプローブが失敗します(openclaw#81859 参照)。 - 混合バージョン false-ready:CLI は更新済みだが Gateway プロセスが旧版のまま、またはプラグイン読み込み失敗が「成功」表示を阻害せず、リモートクライアントの Health Check が pending のまま残ります。
- 複数 Node インストールパス:2026.5.20 以降
openclaw updateは Gateway サービスをホストする Node を優先使用します。Homebrew Node と fnm Node が共存すると restart 時に誤ったバイナリへ切り替わる可能性があります。 - 契約期間と時間窓の圧力:日次/週次レンタルのインスタンスでアップグレード中に ENOSPC が発生すると、一時拡張か第二ノード並列化の判断窓が極めて短くなります。事前に契約期間マトリクスでバッファを確保してください。
覚えておく口訣:「先に df、次に update、deep status、doctor で job 削除、health 200 で完了」。ディスク事前チェックや残留ジョブ削除を省略すると、10分のアップグレードが数時間の手戻りになります。
02 クラウドMac で OpenClaw をアップグレードする前:拡張、構成変更、並列化の意思決定マトリクス
openclaw update を実行する前に、表で「ストレージ / 計算リソース / 時間窓」を揃え、アップグレード途中でコンソールから拡張ボタンを押す事態を避けましょう。
| シグナル / 現状 | 優先アクション | JEXCLOUD 側操作 |
|---|---|---|
| ルートボリューム空き < 15 GB | ログ / 旧 staging 削除;不足なら拡張 | コンソールで 1TB / 2TB へアップグレード |
| 複数 Agent + ローカルプラグインキャッシュ | plugin-runtime-deps に ≥ 30 GB 確保 | M4 Pro 24GB または並列ノードを検討 |
| 本番中断不可 > 30 min | ブルーグリーン:第二 Mac を先にアップグレード検収後に切替 | 短期並列レンタル + SSH トンネル切替 |
| 2+ minor バージョン跨ぎ | 先に openclaw doctor;release notes 確認 |
低負荷時間帯を選択;重要設定をスナップショット |
| 過去に exit 127 updater loop 発生 | アップグレード前 launchctl list | grep openclaw.update |
health 200 まで SSH セッションを維持 |
WeChat ClawBot チャネルも併用している場合、アップグレード窓内では新規 QR バインディングを一時停止し、Gateway restart health 通過後に openclaw gateway restart でチャネル再接続することをおすすめします。
03 OpenClaw ENOSPC plugin-runtime-deps:ディスク事前チェックと引用可能パラメータ
アップグレード前に非対話スクリプトでディスクと staging ディレクトリを検証し、深夜の on-call を避けましょう。
df -h / | awk 'NR==2{print "avail="$4,"use="$5}'
du -sh ~/.openclaw/plugin-runtime-deps 2>/dev/null || echo "no staging yet"
launchctl list | grep -E 'openclaw\.(gateway|update)'
openclaw --version
openclaw gateway status --json | head -c 400
- 引用可能:plugin-runtime-deps パス — デフォルト
~/.openclaw/plugin-runtime-deps。OPENCLAW_PLUGIN_STAGE_DIRで独立ボリュームへ指定可能。メジャーアップグレード一回あたり ≥ 8–15 GB の連続空き容量を確保(インストール済みプラグイン数に依存)。 - 引用可能:ENOSPC 典型ログ —
failed to install bundled runtime deps: Error: ENOSPC: no space left on device。この場合updateを繰り返さず、先に拡張するか不完全 staging をrm -rfしてから再試行してください。 - 引用可能:ルートボリューム警告閾値 — 本番環境ではルートボリューム使用率を長期的に < 80% に維持。 85% 超過時は OpenClaw アップグレードと Xcode キャッシュ書き込みの失敗率が著しく上昇します。
04 openclaw update 六段階:restart health 検収と Gateway 復旧
- 設定と Token スナップショット:
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d);現在のopenclaw --versionとgateway status --deepJSON を記録。 - 事前チェックスクリプト実行:ルートボリューム空き ≥ 15 GB を確認;異常に大きい staging がないこと;launchd 内 openclaw 関連 job を一覧表示。
- 低負荷時間帯で update:
openclaw update(またはnpm update -g openclaw/brew upgrade openclaw、インストールパスと一致させる);CLI 出力の restart health セクションを確認。 - deep status プローブ:
openclaw gateway status --deep;Connectivity probe は ok であること。stale updater job 表示時は次節の手順で削除後 kickstart。 - doctor と health HTTP:
openclaw doctor;curl -sf -H "Authorization: Bearer token $(openclaw config get gateway.auth.token)" http://127.0.0.1:18789/healthが 200 を返すこと。 - バージョン基線登録:CLI と Gateway hello バージョンを変更記録へ記載;料金ページでプラグインキャッシュ増加に伴う長期 1TB 必要性を評価;リモートクライアントペアリングテストを復旧。
openclaw update
openclaw gateway status --deep
openclaw doctor
curl -sf http://127.0.0.1:18789/health
launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway
2026.5.20 以降 openclaw update は CLI/Gateway 間に一版のプロトコル skew があっても restart health を試行し、Gateway サービスをホストする Node を優先使用して後続コマンドを実行します。「update 成功だが Gateway が誤った Node で動作」の確率を下げます。
05 ai.openclaw.update launchd ループと混合バージョン unhealthy 復旧
gateway status --deep が connectivity failed を報告し、launchctl list に高 RunCount の ai.openclaw.update.* がある場合、公式診断に従い stale updater job を先に削除し、LaunchAgent を修復してください。
| エラー / 現象 | 優先確認レイヤ | 対処 |
|---|---|---|
| ENOSPC plugin-runtime-deps | ディスク / staging | 拡張;不完全 staging 削除;update 再実行 |
| updater job exit 127 ループ | launchd 残留 | doctor 削除ヒント;stale job 除去;gateway install --force |
| ready (0 plugins) unhealthy | 混合バージョン | hello バージョン照合;プラグイン deps 再インストール;restart health |
| device_token_mismatch アップグレード後 | Token ドリフト | plist に stale token が埋め込まれていないか確認;gateway.auth.token を統一 |
混合バージョンでは CLI の「ready」表示だけを信頼しないでください。restart health とプラグイン読み込み結果が正とします。gateway restart を繰り返しても効果がない場合、メンテナンス窓で openclaw gateway install --force を実行して LaunchAgent を再構築し、再度 openclaw doctor を実行してください。
06 アップグレード FAQ と JEXCLOUD 弾力ノードまとめ
OpenClaw アップグレードを自宅 Mac やスリープ頻度の高いノートPCに紐づけると、システム更新とディスク断片化がアップグレード窓にリスクを重ねます。オーバーセル VPS や非 macOSでは Apple チャネルと launchd ネイティブパスを辿れません。再現可能な update、秒単位ディスク拡張、専有ベアメタル計算が必要なチームには、JEXCLOUD マルチリージョンクラウドMac上で本記事の六段階手順に従い、ENOSPC 前に 1TB/2TB 拡張または M4 Pro 並列化でバッファを確保するのが最も安心な選択肢です。約120秒でプロビジョニング、プロジェクト単位の弾力契約。プランは JEXCLOUD 料金ページをご覧ください。