Replies: 4 comments
-
|
Even if artifacts are configured to expire, GitHub Actions storage quota can still count workflow logs, caches, and other metadata. Expired artifacts might not immediately free up quota until GitHub fully purges them, and workflow runs themselves (especially logs and caches) can persist. Manual deletion of old runs or caches is sometimes required to immediately reclaim space, because expiration settings primarily control retention, not instant storage accounting. |
Beta Was this translation helpful? Give feedback.
-
|
This might be due to a delay in GitHub’s cleanup process. Even if artifacts are set to expire in 1 day, they can sometimes still appear in storage usage until GitHub’s background jobs fully remove them. You may want to check for any remaining caches or logs in the repository’s Actions storage settings. If the usage still appears after some time, it could be a reporting issue and may need GitHub Support. |
Beta Was this translation helpful? Give feedback.
-
|
Hey @jefflongo, your math is spot on! 45 GB-hours a day is roughly 1.87 GB, which perfectly matches those old artifacts. You are completely right that you shouldn't have to manually delete them. Unfortunately, there's a known backend glitch where GitHub marks artifacts as "expired" in the UI but fails to actually delete the physical files from the server. Because they still exist on disk, the billing system keeps counting them against your quota. To force the servers to drop those ghost files and clear your quota warning, just go ahead and manually delete those 4 old workflow runs. That will instantly fix the issue for you! |
Beta Was this translation helpful? Give feedback.
-
|
What You Need to Do Manual deletion of workflow runs and artifacts is the only way to stop the bleeding. Changing retention policies only affects future artifacts . Delete all old workflow runs in that repository. Navigate to the Actions tab, click on each old workflow, and use the delete option. This removes associated artifacts and logs. If comfortable with the command line, use the GitHub CLI to bulk delete old runs more efficiently . After deletion, wait 6-24 hours for GitHub's storage recalculation to complete . Your usage should drop once the system recognizes the deletions. Going forward, implement aggressive retention policies at the organization level rather than per-workflow to ensure consistency . Set this in Organization Settings → Actions → General under Artifact and log retention. Consider using alternative storage for large build outputs such as GitHub Releases or cloud storage . The fundamental lesson here is that artifact storage billing is based on time-weighted usage, not point-in-time snapshots. Deleting artifacts stops future accrual but does not retroactively erase the storage already consumed. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Why are you starting this discussion?
Question
What GitHub Actions topic or product is this about?
General
Discussion Details
I received an email that I'm close to my Actions storage quota for my organization. After downloading the usage report, it shows that I'm using ~45 gigabyte-hours per day this month in a single repo. Looking at this repo, I have not run any actions in over 10 months! There are only 4 workflow runs in this repo (ranging from 10-12 months old) containing a sum of 2GB worth of artifacts which are all expired. Thus, I would expect this should not count towards my quota. I suspect if I manually deleted these workflows it would solve the problem, but why should I have to be manually deleting these workflows when I've configured artifacts to expire in 1 day?
Beta Was this translation helpful? Give feedback.
All reactions