GitHub Actions: scheduled workflow not triggering [2026 fix]

Scheduled workflows fail silently when cron syntax is invalid or pushed to non-default branches; fix: validate cron with cronitor and ensure workflow file is on main/master.

GitHub Actions: Scheduled Workflow Not Triggering – 2am Production Fix

TL;DR

Cause: Your cron syntax is invalid OR your workflow file isn't on your default branch (main/master). Fix: Validate cron expression at [cronitor.io](https://cronitor.io/cron-schedule-expression-editor) and confirm .github/workflows/ is committed to your default branch, not a feature branch.

---

Real Console Error Messages

GitHub Actions won't show these in your UI—you'll find them in the workflow run logs or not see a run at all:

``` 1. "Cron job is invalid" (Silent failure—no workflow run appears)

2. "Request failed: 422 Unprocessable Entity" (When pushing invalid schedule syntax to main)

3. "Scheduled workflow did not run" (Workflow exists but cron never fires—check branch)

4. "fatal: pathspec '.github/workflows/schedule.yml' did not match any files" (Workflow file not on default branch)

5. "Error: no matching manifest for linux/arm64" (Unrelated container issue, but sometimes conflated with scheduling problems) ```

---

Broken Code → Fixed Side-by-Side

Problem 1: Invalid Cron Syntax

❌ BROKEN: ```yaml name: Deploy on: schedule: - cron: '0 0 * * * *' # 6 fields (Unix cron) – GitHub expects 5

jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploy!" ```

✅ FIXED: ```yaml name: Deploy on: schedule: - cron: '0 0 * * *' # Correct: 5 fields (minute hour day month weekday)

jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploy!" ```

Why: GitHub Actions uses POSIX cron (5 fields), not standard Unix cron (6 fields with seconds).

---

Problem 2: Workflow on Feature Branch Instead of Default

❌ BROKEN: ```bash

You committed to 'feature/scheduled-task' branch

git checkout -b feature/scheduled-task echo 'schedule: cron: "0 2 * * *"' >> .github/workflows/nightly.yml git push origin feature/scheduled-task

❌ Workflow never runs—it's not on main

```

✅ FIXED: ```bash

Commit to default branch (main/master)

git checkout main echo 'schedule: cron: "0 2 * * *"' >> .github/workflows/nightly.yml git add .github/workflows/nightly.yml git commit -m "Add nightly scheduled workflow" git push origin main

✅ Now scheduled workflow will trigger

```

Why: GitHub only triggers scheduled workflows from files on your repository's default branch (set in Settings > Branches > Default branch).

---

Problem 3: Using UTC Timezone Without Awareness

❌ BROKEN: ```yaml name: Morning Report on: schedule: - cron: '0 8 * * MON' # "8am Monday" jobs: report: runs-on: ubuntu-latest steps: - run: date # Runs at 8:00 UTC, not 8:00 your local time ```

✅ FIXED: ```yaml name: Morning Report on: schedule: - cron: '0 13 * * MON' # 8am EST = 1pm UTC (during winter) jobs: report: runs-on: ubuntu-latest steps: - run: date - run: echo "UTC is the only supported timezone for GitHub Actions cron" ```

Why: All GitHub Actions cron schedules are in UTC. Convert your desired time to UTC (or add a comment for future you).

---

Still Broken? Check These Too

1. Workflow file syntax error elsewhere – Even one invalid YAML character stops the entire workflow from registering. Run yamllint .github/workflows/*.yml locally before pushing.

2. PAT token or GITHUB_TOKEN permissions – If your workflow writes back to the repo, check that your token has contents: write and workflows: write permissions. [See GitHub token scopes](/?guide=github-token-permissions).

3. Repository archived or disabled – Scheduled workflows don't run on archived repos. Check Settings > Danger Zone to confirm your repo is active. Also verify Actions aren't disabled in Settings > Actions > General.

---

Verification Checklist

  • [ ] Cron expression is exactly 5 fields (minute hour day month weekday)
  • [ ] Tested cron at [cronitor.io](https://cronitor.io/cron-schedule-expression-editor)
  • [ ] Workflow .yml file is committed to main or your default branch (not a PR)
  • [ ] Repository is not archived
  • [ ] GitHub Actions is enabled (Settings > Actions > General)
  • [ ] No YAML syntax errors (yamllint passes)
  • [ ] Workflow file is in .github/workflows/ directory
  • [ ] Remembered that all times are UTC
  • ---

    Related Guides

  • [Workflow permissions and token scopes](/?guide=github-token-scopes)
  • [Troubleshooting GitHub Actions](/?guide=github-actions-debugging)
  • ---

    Official Documentation

    [GitHub Actions: Scheduled events](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)

    ---

    Notes on Version/Behavior

    As of 2026, GitHub Actions cron behavior has not changed significantly since 2021, but I'm flagging potential areas where your specific setup might differ:

  • Enterprise Server: Some versions have different timezone handling; check your instance documentation.
  • Organization policies: Some orgs restrict Actions on certain branches; verify in your org settings.
  • Free tier rate limits: Scheduled workflows might queue if you hit concurrent job limits; check your plan.
  • If you see different behavior, drop a note in the comments below.

    ---

    Found a different variation? Drop it in the comments.

    🔥 0d
    LIVE
    PlanetScale rage spiking Vercel pricing complaints Railway gaining fast Supabase happiness rising Resend loved by devs PlanetScale rage spiking Vercel pricing complaints Railway gaining fast Supabase happiness rising
    DEVELOPER PAIN RADAR // Loading...

    Developers complain.
    Opportunities appear.

    We track what developers are struggling with today — and what opportunities that creates.

    guides today
    avg happiness
    🔥 Pain
    📖 Guides
    🔭 Explore
    👤 Mine
    🔥 Pain Radar — rage scores today
    ↗ share
    💡 Opportunity Feed — pain = market gap
    📈 Tool Momentum
    all scores →
    📖 Latest Guide
    all guides →
    📖 All Guides
    📊 Tool Scores
    + Submit
    📰 Hacker News
    ➕ Submit a Tool
    ← back