GitHub Actions: scheduled workflow not triggering [2026 fix]
Scheduled workflows fail silently when `schedule` trigger uses invalid cron syntax or workflow file isn't in default branch. Fix: validate cron format and push to main/master.
GitHub Actions: Scheduled Workflow Not Triggering at 2am
TL;DR
Cause: Your cron syntax is invalid OR the workflow file doesn't exist on your default branch (GitHub doesn't run scheduled workflows from feature branches). Fix: Validate cron format with0 2 * * * syntax and ensure the .github/workflows/ file is committed to main/master, not a draft PR.---
Exact Error Messages You'll See
1. Silent failure (most common): ``` No workflow runs appear in the Actions tab despite waiting 5+ minutes ```
2. In workflow file validation (GitHub editor): ``` Error parsing cron expression schedule: Invalid cron syntax at line 8 ```
3. When testing locally with act:
```
Error: cron expression "0 2 * * *" is invalid
Parsing failed at position 3
```
4. In GitHub's workflow syntax check: ``` Schedule trigger is not supported on this branch. Scheduled workflows only run on the repository's default branch. ```
5. Via GitHub API (if querying workflow runs): ``` {"message":"No workflow runs found","documentation_url":"https://docs.github.com/rest/actions/workflow-runs"} ```
---
Broken vs. Fixed Code
❌ BROKEN: Invalid cron syntax
```yaml name: Daily Deploy on: schedule: - cron: '2 * * * *' # ← WRONG: missing hour field jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploying..." ```✅ FIXED: Valid cron with all 5 fields
```yaml name: Daily Deploy on: schedule: - cron: '0 2 * * *' # ← CORRECT: 2:00 AM UTC every day jobs: deploy: runs-on: ubuntu-latest steps: - run: echo "Deploying..." ```---
❌ BROKEN: Workflow on feature branch
```bashFeature branch (feature/new-deploy)
$ git checkout -b feature/new-deploy $ cat > .github/workflows/deploy.yml << 'EOF' name: Deploy on: schedule: - cron: '0 2 * * *' jobs: run: runs-on: ubuntu-latest steps: - run: echo "Deploy" EOF $ git add .github/workflows/deploy.yml $ git commit -m "Add deploy workflow" $ git push origin feature/new-deploy← Creates PR but workflow NEVER TRIGGERS on schedule
```✅ FIXED: Workflow on default branch
```bashMerge to main FIRST
$ git checkout main $ git pull origin main $ git merge feature/new-deploy $ git push origin main← NOW scheduled workflow will trigger at 2:00 AM UTC
```---
Cron Syntax Quick Reference
Format: minute hour day-of-month month day-of-week
| Example | Meaning |
|---------|----------|
| 0 2 * * * | 2:00 AM UTC every day |
| 0 */6 * * * | Every 6 hours |
| 30 14 * * MON-FRI | 2:30 PM UTC Mon-Fri |
| 0 0 1 * * | 12:00 AM UTC on 1st of month |
⚠️ NOTE: GitHub interprets all cron times in UTC. If you need 2am EST, use 0 7 * * * (winter) or account for daylight saving.
Version note: Cron syntax validation is consistent in GitHub Actions as of 2024-2026, but I cannot guarantee future changes to how GitHub parses timezone-aware scheduling without checking current docs.
---
Verification Checklist
✅ Confirm workflow file is in .github/workflows/ directory
✅ Commit and push to main or master (your default branch)
✅ Validate cron at [crontab.guru](https://crontab.guru) — must have exactly 5 fields
✅ Check Actions tab → select workflow → verify "Scheduled" trigger shows
✅ Wait 5-10 minutes; GitHub scans schedules every 15 minutes
✅ If still nothing, check your repo hasn't disabled Actions in Settings → Actions
---
Still Broken? Check These Too
1. Actions disabled in Settings Go to Settings → Actions → verify "All actions and reusable workflows" is selected, not "Disabled"
2. Permissions too restrictive
If using secrets.GITHUB_TOKEN, ensure permissions: write-contents or permissions: contents: write is set in the job
3. [Related: GitHub Actions environment variables not injecting](/?guide=github-actions-env-vars) Your workflow may run but fail silently if env vars aren't set correctly
4. [Related: Actions workflow timeout errors](/?guide=github-actions-timeout) Job might trigger but get killed before finishing
5. Repository archived or fork limitations Scheduled workflows don't run on archived repos or may have restrictions on forks
---
Official Documentation
📖 [GitHub Actions: Scheduling workflows - GitHub Docs](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)
---
Found a different variation? Drop it in the comments—especially if you're seeing this on a forked repo or with custom GitHub Enterprise Server configs.