Scheduled workflow (schedule: cron) consistently delayed 8-14 hours, one day dropped entirely — delay persists even after changing the cron minute. Related to new account/repo? #201738
🏷️ Discussion TypeBug BodyA daily Setup:
What actually happened (all times UTC): | Date | Cron at the time | Expected fire time | Actual fire time | Delay | (All confirmed via the Actions REST API — The part that doesn't fit the usual explanation: The standard advice ("avoid What I've already ruled out:
Question: Has anyone else seen a "consistent 8-14 hour delay" (not just the documented "a few minutes to an hour" congestion) for 'schedule' triggers on a brand-new account/repo specifically? I'm trying to figure out:
Can share the repo/workflow name if anyone from GitHub staff wants to look at the actual run IDs. Guidelines
|
Replies: 5 comments 4 replies
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
|
First off, exceptional job on the troubleshooting—ruling out the default branch, fork status, activity window, and hitting the REST API directly means you’ve already eliminated 95% of the usual footguns. To answer your core question directly: Yes, this is an un-documented but very real behavior pattern for brand-new accounts and low-traffic public repos on the Free tier. Here is exactly what is happening under the hood, why changing your minute didn't work, and how you can actually solve it. 1. The Architectural Reality: It's Not Per-Minute CongestionWhile the official docs give the standard "avoid the top of the hour" advice, GitHub's Actions scheduling infrastructure ( To prevent massive crypto-mining abuse and spam vectors (which heavily target new free public repos), GitHub doesn't just evaluate your cron at
2. Will it improve?Slightly, but don't expect miracles. As your account ages past the 30-to-90-day mark and accumulates diverse activity (stars, PRs, multi-contributor interactions), your internal trust telemetry adjusts. However, even on established Free-tier accounts, 3. The Workaround: External Dispatch (The Only Reliable Way)Since you already have Here is the exact curl payload your external runner needs to hit: curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
[https://github.com/__proxy/api.github.com/repos/YOUR_USERNAME/YOUR_REPO/actions/workflows/daily.yml/dispatches](https://github.com/__proxy/api.github.com/repos/YOUR_USERNAME/YOUR_REPO/actions/workflows/daily.yml/dispatches) \
-d '{"ref":"main"}' |
|
Hey there! 👋 Thanks for posting in the GitHub Community, @mirae-cloud ! You are more likely to get a useful response if you are posting in the applicable category. I've gone ahead and moved this to the correct category for you. Good luck! |
|
This is a documented GitHub Actions limitation affecting all schedule-triggered workflows. Here is a full explanation and workaround: Why scheduled workflows are delayedGitHub'''s scheduled workflow runner is shared infrastructure across all public repositories. During high-load periods (typically UTC 00:00–08:00 and around the top of each hour), there can be significant queue delays — 8–14 hours is not unusual for new repos with low priority. From the GitHub docs:
Why new repos/accounts are hit hardestGitHub prioritizes schedule execution based on repository activity and age. Brand new repos and new accounts get the lowest priority in the queue, explaining the extreme delays. WorkaroundsOption 1: Trigger from external cron (most reliable)Use a free external cron service (cron-job.org, EasyCron) to hit your repo'''s webhook: curl -X POST \
-H "Authorization: token YOUR_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://github.com/__proxy/api.github.com/repos/OWNER/REPO/dispatches \
-d "{\"event_type\":\"daily-trigger\"}"Workflow trigger: on:
repository_dispatch:
types: [daily-trigger]Option 2: Add workflow_dispatch as manual fallbackon:
schedule:
- cron: "0 6 * * *"
workflow_dispatch: {}Option 3: Wait for the repo to matureAfter a few weeks of activity and successful runs, scheduling reliability significantly improves. The dropped run is also a known occurrence — GitHub does not guarantee exactly-once execution for schedule triggers, only best-effort delivery. |
|
Your measurements are useful because they separate two things that often get mixed together:
The part GitHub documents is here: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule The docs say that scheduled workflows can be delayed during high load, that the start of each hour is a high-load time, and that if load is high enough some queued jobs may be dropped. They also say scheduled workflows only run on the default branch. The troubleshooting page repeats the same point: Given your table, I would be careful about concluding that this is definitely “new account trust scoring” or a documented Free-tier/private limitation. I do not think GitHub publicly documents a specific new-account batch queue for public repositories. What you can say with evidence is stronger and safer: That is enough to make this look like either very heavy schedule-trigger backlog or some scheduler/account/repository state issue. A few additional checks I would add to your evidence before escalating:
For a truly time-sensitive daily job, I would not depend on GitHub’s If you file this with GitHub Support or keep updating this thread, the cleanest packet would be:
That gives GitHub enough to distinguish schedule dispatch delay from runner capacity delay. |
First off, exceptional job on the troubleshooting—ruling out the default branch, fork status, activity window, and hitting the REST API directly means you’ve already eliminated 95% of the usual footguns.
To answer your core question directly: Yes, this is an un-documented but very real behavior pattern for brand-new accounts and low-traffic public repos on the Free tier.
Here is exactly what is happening under the hood, why changing your minute didn't work, and how you can actually solve it.
1. The Architectural Reality: It's Not Per-Minute Congestion
While the official docs give the standard "avoid the top of the hour" advice, GitHub's Actions scheduling infrastructure (
actions-customer-…