GitHub Actionsのcronが動かない・遅れる時の対処

最終更新: 2026-07-19

GitHub Actionsのschedule(cron)は手軽ですが、「動かない」「時刻がずれる」「遅れる」の相談が絶えません。原因はサーバー系cronとは別物です。順に確認しましょう。

原因1: 時刻がUTCで9時間ずれている

GitHub ActionsのcronはUTC基準です。0 9 * * *はUTC9時=日本時間18時に動きます。日本時間で動かすには9時間引く必要があります(詳細はタイムゾーン問題の記事)。当サイトのGitHub Actions用ページはツールがUTC前提で設定済みなので、手元の時刻で何時に動くか確認できます。

原因2: デフォルトブランチにない

scheduleトリガーはデフォルトブランチ(通常main)上のワークフローファイルだけが有効です。featureブランチに置いたままだと動きません。

原因3: 60日間の無操作で自動停止

リポジトリに60日間アクティビティがないと、スケジュール実行は自動的に無効化されます。動かなくなったらまずリポジトリが休眠していないか確認しましょう。手動でworkflowを1回実行すれば復活します。

原因4: 実行の遅延・スキップ

GitHub Actionsのcronは指定時刻ぴったりを保証しません。特に毎時0分など混雑する時間帯は、数分〜数十分遅れたり、まれにスキップされます。時刻の正確性が要るなら、混雑を避けて7 * * * *のように分をずらすのが定石です。

※ ワークフロー自体の書き方(YAML)は当サイトのGitHub Actions用ページにコピペ例があります。式が意図どおりかはcron式ツールで先に確認しておくと安心です。

JST対応のcron式の書き方・YAML例・検証ツールをまとめています。

GitHub Actions用ページを見る