アップデートのトラブルシューティング
アップデートで困ったときの対処をまとめました。多くの場合、自動 rollback 機能で前のバージョンに自動で戻るので、サービスが完全に停止することは ほぼありません。落ち着いて以下を順番に確認してください。
1. 「アップデートボタンが押せない / バナーが出ない」
管理画面の上部に「v0.X.X にアップデート」バナーが表示されない場合の原因と対処です。
原因 A: manifest 取得に失敗している
ダッシュボードは GitHub の line-harness-oss リポジトリから最新リリースの manifest を 取得します。GitHub API の rate limit に当たっているか、ネットワーク 経路に問題がある可能性があります。
- ブラウザの DevTools (F12) で Network タブを開き、
/api/updates/checkのレスポンスを確認 - 5〜10 分待って再読み込み (rate limit リセット)
- それでも出ない場合は
https://github.com/Shudesu/line-harness-oss/releasesにアクセスできるか確認
原因 B: ログインしていない / 権限不足
アップデートはアカウント Owner ロールのみが実行できます。 Staff ロールでログインしている場合はバナーが表示されません。 Owner アカウントでログインし直してください。
原因 C: すでに最新版
現在のバージョンが GitHub の最新リリースと一致している場合は、 バナーは表示されません。/settings でバージョンを確認できます。
2. 「fork detected と表示される」
ハッシュ検証で改造が検出された状態です。自動アップデートは 安全のため停止されます。手動アップデート手順に従ってください。
3. 「進捗バーが途中で止まっている」
アップデート中の進捗は SSE (Server-Sent Events) で配信されます。 ネットワークの問題で SSE 接続が切れると、画面上の進捗バーは止まったように 見えますが、サーバー側ではアップデートが進行している可能性があります。
- まずページをリロードしてください
- リロード後、
/updatesの履歴ページに最新の状態が表示されます (running / completed / failed) - 5 分以上 running のままなら、アップデートが詰まっている可能性が高いです
4. 「アップデートが失敗した」
アップデートのどこかのステップ (build / migration / deploy / health check) で失敗した場合、line-harness は自動的に rollback を実行します。
自動 rollback の挙動
- Worker は前のバージョンに即座にロールバック
- D1 migration は additive-only ポリシーのため、原則として rollback 不要
- R2 のアセットも前バージョン用が残っているため、影響を最小化
- 失敗の詳細は
/updatesページのエラー欄に表示
原因の調べ方
/updatesページで該当アップデートのログをクリック- 失敗したステップ (build / migrate / deploy / health) と エラーメッセージを確認
- 自分で原因がわからない場合は、ログを丸ごとコピーして GitHub Issue に貼って報告してください
GitHub Issue 報告先
github.com/Shudesu/line-harness-oss/issues
5. 「migration が失敗した」
D1 のスキーマ変更 (migration) が失敗した場合、Worker は古いバージョンの ままになります。サービス自体は止まらないので慌てる必要はありません。
確認手順
- Cloudflare Dashboard → D1 → 該当 DB の「Console」タブを開く
SELECT name FROM sqlite_master WHERE type='table';で現在のテーブル状態を確認migrationsテーブルがあれば、適用済みの migration 一覧を確認
最終手段: 手動 SQL
migration が壊れて自動再実行できない場合、Cloudflare Dashboard の D1 Console から手動で SQL を実行できます。
警告: 手動 SQL はバックアップを取ってから実行してください。 失敗すると元に戻せません。GitHub Issue で相談するのを強く推奨します。
6. 「Worker 更新後に /health が失敗する」
新しい Worker にデプロイした直後、/health エンドポイントが 応答しないと、line-harness は自動で前のバージョンに戻します (health check timeout は通常 30 秒)。
原因の例
- 環境変数 (Secret) の設定漏れ
- D1 binding の設定ミス
- 新しいコードに含まれる構文エラー / 起動失敗
- R2 / KV など外部リソースの権限不足
調査手順
npx wrangler tailで Worker のリアルタイムログを見る- Cloudflare Dashboard → Workers → 該当 Worker → Logs を確認
- 足りない Secret があれば
wrangler secret putで追加 (CF API トークンの作り方 と同じ要領)