We know we have work to do in maintaining our own open source surfaces for GitHub Actions (actions, runner-images, starter workflows, toolkits, etc.). That being said, I wanted to address what was discussed and also share what’s next for GitHub Actions:
With respect to `safe_sleep` in self-hosted runners (note: this never impacted GitHub-hosted runners)...
• We fixed the implementation causing an infinite loop on August 14th and cut a new runner release in October. So this bug has been fixed[^1] and released for a month or so. We missed closing the related issue[^2] as part of that release and then closed it on December 1st.
• As for burning CPU while sleeping, this is obviously not great from just a quality of engineering perspective, but this was an intentional change away from relying on the OS sleep to address a customer case where it didn't work when sleep was not available. We are fixing this now to use sleep if it's present and fall back to this implementation only if it's not available. This script is only used in 2 scenarios: updating the self-hosted runner when a new version is available and recovering from an unhealthy termination. With the infinite loop issue fixed, the CPU inefficiency, while still not great, should have very little real impact to self-hosted runners CPU utilization and zero GitHub Actions billing impact to customers. The biggest impact is customer configs using multiple self-hosted runners on the same machine. In that case, during the seconds that this sleep is running during an infrequent update or after an unhealthy runner termination, the other runners would suffer from CPU consumption.
• All of this is completely unrelated to any sleeps within workflows and jobs themselves.
As for file hash issue[^3], a hosted runner image update that started rolling out on November 22 caused failures related to an unintended breaking change in the runner agent cached in the image. This was rolled back on November 23, which mitigated all customer impact. Hosted runner agent updates have been paused until improvements identified from this are completed, but image updates were unblocked on the 25th to ensure we continue to provide security updates for our hosted runners.
GitHub Actions is a core primitive of GitHub and important to its future. Last year, GitHub gave away 11.5 billion build minutes for free to open source projects[^4] (which I think is about ~$184 million dollars). The Actions team’s priority for the last 18 months has been on scaling and reliability. In the last few months, the team has also focused on community asks and shipped support private/internal .github repos[^5], increased the actions cache size >10GB[^6], shipped Action workflow YAML anchors[^7], increased workflow dispatch limits[^8], and increased reusable workflow limits[^9].
As for what’s next, the Actions team is now going to be focused on:
• Support for timezones[^10] in scheduled jobs and updates to schedule reliability
• Return the run ID from workflow dispatch[^11]
• Adding a switch function for expressions so they have a conditional operator or function[^12]
• UX improvements, including faster page load times, better rendering for workflows with over 300 jobs, and a filter for the jobs list.
• Parallel steps[^13] (one of the most requested features from GitHub Actions community
I think this covers most of it, but we’ll follow up soon with more details in a proper blog post
[1]
github.com/actions/runner/pu…
[2]
github.com/actions/runner/is…
[3]
github.com/actions/runner-im…
[4]
github.blog/news-insights/oc…
[5]
github.blog/changelog/2025-0…
[6]
github.blog/changelog/2025-1…
[7]
github.blog/changelog/2025-0…
[8]
github.blog/changelog/2025-1…
[9]
github.blog/changelog/2025-1…
[10]
github.com/orgs/community/di…
[11]
github.com/orgs/community/di…
[12]
github.com/orgs/community/di…
[13]
github.com/orgs/community/di…