コンテンツにスキップ

Postmortem: sync-automation-inventory.yml サイレント失敗(約2週間)

📁 docs/ops/postmortem/2026-05-31_sync-automation-inventory-サイレント失敗.md

概要

発生日時: 2026-05-14(初回 push 失敗)
サイレント失敗開始: 2026-05-24(スケジュール初回失敗)
検知日時: 2026-07-12(issue #6868 起票時)
解消日時: 2026-06 初旬(推定。6月のスケジュール実行から成功に転じた)
影響期間: 2026-05-24 〜 2026-05-31(スケジュール失敗の確認期間)

影響範囲

  • システム: .github/workflows/sync-automation-inventory.yml
  • 影響内容: docs/dev-environment/automation-inventory.md(自動化インベントリ)が 2026-05-16 以降更新されない。健全性管理ファイル自体が機能停止
  • 影響期間: 2026-05-16〜約2週間(ファイル更新が止まった期間)

タイムライン

日時 出来事
2026-05-14 push トリガーで2回失敗(原因不明)
2026-05-16 automation-inventory.md の最終正常更新
2026-05-18 push トリガーで失敗
2026-05-24 スケジュール実行(日曜09:00 JST)失敗 ← 検知すべきだった
2026-05-31 スケジュール実行失敗 ← 2回目のサイレント失敗
2026-06 初旬 スケジュール実行が成功に転じる(自然回復 or 別 PR での修正)
2026-07-12 issue #6868 で調査。現状は正常と確認

原因

直接原因

特定できず(GitHub Actions の実行ログは90日保持のため、5月のログは2026-07-12時点で参照可能だったが、エラー内容は確認していない)。

推定原因: 1. scripts/sync_automation_inventory.py が使用する GitHub API のレートリミット超過 2. PROJECT_PAT の期限切れまたは権限不足 3. スクリプト内の API 呼び出し構造の問題

根本原因

  • アラートなし: スケジュール実行の失敗を通知する仕組みがなかった
  • サイレント失敗: ワークフローが失敗しても誰も気づかない状態だった

再発防止策

対策 担当 状態
スケジュール実行失敗時の通知を追加する(Discord Webhook 等) Claude ⬜ 未着手
PROJECT_PAT の有効期限を定期確認する 手動 ⬜ 未着手(四半期1回の棚卸しissueに追加推奨)
ワークフロー失敗時の自動 issue 作成を検討 Claude ⬜ 検討中

学んだこと

  • GitHub Actions のスケジュール実行は静かに失敗する。定期的な手動確認か通知設定が必要
  • 健全性を測定するツール自体が壊れると誰も気づかない「二重の見落とし」が起きる
  • push トリガーと schedule トリガーの失敗原因は異なる場合がある(push 時のレートリミットはスケジュール実行では問題にならないことも多い)

関連リンク

  • Issue: #6868(fix: sync-automation-inventory.yml が2ヶ月間サイレント失敗)
  • .github/workflows/sync-automation-inventory.yml
  • docs/dev-environment/automation-inventory.md