Hourly cron produces successful runs roughly 4–8 hours apart: what to check? #212101
Replies: 2 comments
|
4 to 8 hours between runs is way more than the usual schedule lag, so I'd start by finding out whether the missing hours never got a run at all or got one that was thrown away. Listing only the schedule runs shows that quickly, and it doesn't change anything. gh run list --workflow your-workflow.yml --event schedule --limit 50 --json createdAt,status,conclusionIf there's a run for most hours but the ones in between are If there's a run every hour but each one started late, compare the run's gh run view <run-id> --json createdAt,jobs --jq '{createdAt, jobs: [.jobs[] | {name, startedAt}]}'A big gap there means the job sat waiting for a runner, which happens a lot with a self-hosted runner that's offline or busy. If there's simply no run in the gaps, the schedule events weren't created, and that part is on GitHub's side. Their docs say schedule events can be delayed under high load and some can be dropped (schedule notes). Your |
|
One more read-only check before attributing the missing hours to GitHub: gh api 'repos/OWNER/REPO/actions/workflows/WORKFLOW.yml' --jq '{path,state}'That shows the workflow's current state, not its state during an earlier gap. It is also worth checking the workflow file's history on the default branch, and whether the default branch changed during the period. Scheduled workflows only run from the default branch; in a public repository, they can also be disabled after 60 days without repository activity. An absent run alone doesn't tell you whether GitHub delayed or dropped work, or whether the workflow was ineligible at the time. The inactivity rule wouldn't explain repeated 4–8 hour gaps if the workflow stayed active. These checks don't require sharing repository details or starting a run. |
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Question
💬 Feature/Topic Area
Schedule & Cron Jobs
Discussion Details
My GitHub Actions workflow has this hourly schedule:
The scheduled runs I observe are roughly 4–8 hours apart. They eventually complete successfully, but the observed frequency is much lower than hourly. Manual runs work normally.
I have not established the cause and am not assuming this proves a platform fault or that every missing hourly run was dropped.
Are there any known scheduling limits or delays that could explain this pattern? What safe, read-only checks would help distinguish scheduling delay or dropped events from a configuration or repository-level restriction?
I would appreciate guidance that does not require exposing repository details or triggering additional runs.
All reactions