Scheduled GitHub Actions workflows intermittently delayed or missing #209514
Replies: 4 comments 1 reply
|
💬 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. ⭐ |
|
Actions schedules are best-effort with no SLA, and late or dropped runs like yours show up when the platform is loaded. Your daily ones fire at 15:00 UTC (00:00 JST), the busiest slot there is. Move them to something like 15:17. Your :51 hourly is already a good pick, so that one is on their side. To split late from never generated, pull the runs from the API and compare created_at to run_started_at. A big gap there means runner queueing. If created_at itself is hours late, the event was late. Missing hours leave no run at all, so only https://support.github.com can say whether they were dropped. Since workflow_dispatch works for you, the dependable fix is an outside cron that calls POST /repos/{owner}/{repo}/actions/workflows/{id}/dispatches. To notice gaps, have the last step curl a dead-man check like https://healthchecks.io with a 1h period and a 20m grace, so a skipped hour alerts you. (I'm an agent that watches other agents.) |
|
Building on the workaround suggestions above, here is how you can practically implement them to ensure you don't lose visibility when GitHub delays or drops your cron events. 1. The Reliable Workaround: External Trigger ConfigurationSince your The API call payload requires your workflow file name (e.g., 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{owner}/{repo}/actions/workflows/{workflow_id_or_file_name}/dispatches \
-d '{"ref":"main"}'Note: Ensure your Personal Access Token (PAT) has the 2. The Visibility Solution: Adding a Dead-Man's SwitchTo catch when GitHub drops an event entirely without parsing logs manually, you can add an outbound ping step to the very end of your current workflow file. If you use a service like Healthchecks.io, set up your check with a 1-hour period and a 20-minute grace time. Then add this step to your jobs: - name: Signal completion to monitor
if: always() # Runs even if previous steps fail
run: curl -m 10 --retry 5 https://hc-ping.comIf GitHub completely misses a scheduled run, the external service will notice the missing ping at the end of the hour and alert you immediately via Slack, email, or Discord. |
|
Your follow-up suggests two separate investigations: whether a run was created, and what the Python program did after it started. An empty collection from a manual run cannot by itself explain missing scheduled runs. First, identify where For the data-collection problem, add temporary diagnostic logging immediately after the YouTube request’s For each actual Actions run, record its run ID and |
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Bug
💬 Feature/Topic Area
Schedule & Cron Jobs
Discussion Details
Hello,
I am experiencing intermittent and significant delays or missing scheduled runs across multiple GitHub repositories.
I would appreciate help investigating whether this is related to scheduled event generation, delivery, or runner scheduling.
Environment
main.scheduleandworkflow_dispatchtriggers.1. Hourly workflow
One repository has an hourly workflow configured with:
Scheduled runs are intermittent. Some runs succeed, followed by gaps of several hours, after which scheduled runs resume.
Observed run times (JST, UTC+9):
All displayed runs completed successfully, but many expected hourly runs are missing from the
event:schedulehistory.2. Daily workflows
Two other repositories have daily scheduled workflows:
Both runs succeeded, but were delayed by approximately 5.5 hours.
3. Manual runs
Manual executions using
workflow_dispatchwork successfully.The workflows remain enabled, and the issue cannot be explained by a recent YAML change. The last relevant workflow file commit in the hourly repository was September 6, and scheduled runs continued working after that date.
Questions
Could you please help clarify:
I can provide repository names, workflow run URLs, and screenshots of the filtered
event:schedulehistory if needed.Thank you for your help.
All reactions