Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

🏷️ Discussion Type

Question

💬 Feature/Topic Area

Other

Discussion Details

When running GitHub Actions, an error occurred while uploading the artifact. Based on the error message and the email sent by GitHub, I went to clean up all artifacts under my account across all repositories. I used an AI tool to write a Python script based on gh to clean up repository artifacts. After running it, I waited a week and ran the action again, but I still cannot upload the artifact, and the error is exactly the same as before.

2026-07-19T04:25:43.0230210Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Run actions/upload-artifact@v4
(node:516155) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Failed to CreateArtifact: Artifact storage quota has been hit. Unable to upload any new artifacts. Usage is recalculated every 6-12 hours.
More info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending

What is the reason for this, and how should I solve it?
purge.py

You must be logged in to vote

Replies: 4 comments · 9 replies

Comment options

The key part of the error is:

Failed to CreateArtifact: Artifact storage quota has been hit.
Usage is recalculated every 6-12 hours.

If you've already deleted all workflow artifacts, then one of the following is likely happening:

Storage hasn't actually been recalculated yet. Although the message says 6–12 hours, in practice it can occasionally take longer before the quota is updated.
Artifacts still exist somewhere. Your cleanup script may only have removed artifacts from repositories you own. Check for:
organization repositories
forks
repositories where you have Actions enabled but aren't the owner
expired artifacts that haven't been fully garbage-collected yet
The quota belongs to a different billing scope. If the workflow is running in an organization repository, the organization's Actions storage quota is used—not your personal account's.

To troubleshoot, I'd recommend:

Verify the current Actions storage usage in Settings → Billing & plans → Actions (or the organization's billing page if applicable).
List artifacts with gh api (or the REST API) for every repository involved and confirm that none remain.
If the billing page shows 0 artifacts but uploads still fail after waiting more than 24 hours, this is likely a backend accounting issue rather than a workflow problem.

At that point I'd open a GitHub Support ticket with:

the repository name,
the workflow run URL,
the timestamp of the failed upload,
and the exact Failed to CreateArtifact message.

The Node 20 deprecation warning and the punycode deprecation warning are unrelated—they don't prevent artifact uploads. The quota error is the actual failure.

You must be logged in to vote
1 reply
@XiaoHao560
Comment options

Hmm... why is it still full? After I deleted them using gh, I went to the GitHub web interface to check Actions, and it seems there are no artifacts listed there anymore.

My account is not part of any organization.

By the way, how do I use the gh API to list all artifacts?
Screenshot_20260721_191204_com_microsoft_emmx_ChromeTabbedActivity

Comment options

Sometimes the upload step is only where the workflow stops, while the actual issue happens earlier. I'd verify that the files are being created with the expected names and in the expected location before the artifact step starts.

Another thing worth checking is whether the path is being built from an environment variable or matrix value. A small typo or an unexpected value can make the action look in a directory that doesn't exist.

If you can share the workflow snippet around the build and upload steps, it will be much easier to spot what's going wrong.

You must be logged in to vote
1 reply
@XiaoHao560
Comment options

build-android-aar.yml

This is the action I use for building.
It seems that the action error log only indicates insufficient artifact storage space.

Comment options

Based on the screenshot, the error makes more sense now. GitHub still believes your Actions storage is completely full (0.5 GB / 0.5 GB), even though you've already deleted the artifacts.

A few things I'd check:

  1. Click View details on the Actions billing page and verify whether the storage is actually attributed to ffmpeg-kit-next (or another repository). Since almost all of the usage comes from that repository, it may still have artifacts or caches that haven't been fully reclaimed.

  2. Verify through the API as well, not just the web UI. Sometimes the UI shows no artifacts while it's worth confirming with:

 gh api repos/OWNER/REPO/actions/artifacts

and, if applicable:

gh cache list

to make sure there are no remaining caches.

If both the UI and the API show nothing, but the billing page still reports 0.5 GB after waiting a week, this doesn't look like a workflow configuration issue anymore. It looks more like the storage accounting on GitHub's side hasn't been updated correctly.

In that case, I'd recommend opening a GitHub Support ticket and including:

the billing screenshot showing 0.5 GB / 0.5 GB usage,
the repository name (ffmpeg-kit-next),
the failed workflow run URL,
and the output of gh api repos/OWNER/REPO/actions/artifacts.

That should give the support team enough information to verify whether the storage quota is stuck and reset it if necessary.

You must be logged in to vote
7 replies
@XiaoHao560
Comment options

The display on the web interface is like this.
Screenshot_20260721_202458_com_microsoft_emmx_ChromeTabbedActivity

@XiaoHao560
Comment options

谢谢你帮我确认。因为 API 回复显示:

“total_count”:0

而且没有返回任何工件,我们可以确认目前该仓库中没有工作流工件。

接下来我会检查的是 Actions 缓存是否占用了存储配额,因为缓存和工件是分开的。你可以通过以下方式查询:

gh cache list -R XiaoHao560/ffmpeg-kit-next

或者查看仓库的“缓存操作→页面。”

如果缓存也是空的,那么账单页面显示的剩余 0.5GB 使用量很可能是 GitHub 这边的过时存储记录。既然你已经等了超过预期的重新计算时间,我建议你联系 GitHub 客服,并附上:

计费截图显示 0.5 GB / 0.5 GB,GH API 结果显示无伪影, 失败的工作流程运行 ID。

他们应该能检查后台存储会计并刷新配额状态。

~ $ gh cache list -R XiaoHao560/ffmpeg-kit-next

Showing 3 of 3 caches in XiaoHao560/ffmpeg-kit-next

ID          KEY                   SIZE      CREATED           ACCESSED
5696857583  Linux-ffmpeg-kit-...  1.54 GiB  about 8 days ago  about 2 days ago
5696879956  nix-ffmpeg-kit-73...  3.28 GiB  about 8 days ago  about 2 days ago
5676860790  nix-ffmpeg-kit-73...  3.28 GiB  about 9 days ago  about 5 days ago
~ $

Hmm... could it be that the cache is full? Does cache also affect artifacts?

@pooriyayt
Comment options

Yes, this is most likely the cause.

GitHub Actions caches and artifacts are separate features, but both consume your repository's Actions storage quota. The reason the artifacts API returned total_count: 0 is because caches are not included in the artifacts list.

Your cache list shows:

  • 1.54 GiB
  • 3.28 GiB
  • 3.28 GiB

So you have more than 8 GB of cache data stored, which explains why your Actions storage quota is still full.

You can remove these specific caches with:

gh cache delete 5696857583 -R XiaoHao560/ffmpeg-kit-next
gh cache delete 5696879956 -R XiaoHao560/ffmpeg-kit-next
gh cache delete 5676860790 -R XiaoHao560/ffmpeg-kit-next

Or delete all caches in the repository:

gh cache delete --all -R XiaoHao560/ffmpeg-kit-next

After deleting the caches, wait for GitHub's storage usage recalculation (usually a few hours, but sometimes it can take longer), then try running your workflow again.

Also, the Node 20 deprecation warning and the punycode warning are unrelated. They do not prevent artifact uploads. The actual issue was the Actions storage quota being consumed by caches, not the artifact upload step itself.

@XiaoHao560
Comment options

Okay, I'll give it a try. The main reason is that building ffmpeg relies heavily on caching; otherwise, the build time would be extremely long and might even time out, so I've never cleared the cache.

@pooriyayt
Comment options

That makes sense. For a project like ffmpeg, keeping the cache is definitely important because rebuilding all dependencies from scratch can take a very long time and may hit the workflow timeout limit.

You don't necessarily need to remove all caches permanently. I would first check exactly how much storage the cache is using:

gh cache list -R XiaoHao560/ffmpeg-kit-next

If the cache is the thing filling the quota, you could try deleting only old or unused cache entries instead of clearing everything. GitHub Actions will recreate the cache automatically during the next successful workflow run.

Another option is to review your cache key strategy. If the workflow generates many unique cache keys (for example, including timestamps, commit hashes, or too many version combinations), old caches can accumulate quickly and consume the entire quota.

For ffmpeg builds, it is usually better to keep a smaller number of stable caches (for example based on OS + compiler version + dependency version) rather than many separate caches.

After cleaning unnecessary caches, the storage usage should drop once GitHub recalculates it. If the quota still remains full while artifacts and caches are confirmed empty, then it would likely need GitHub Support to investigate the storage accounting.

Comment options

One other thing to check is your artifact retention settings. Even if you've deleted old artifacts, GitHub may not reclaim the storage immediately, and the quota update can take longer than the documented 6–12 hours. Also make sure you're checking all repositories in the organization, including archived or forked repos, since artifacts there still count toward the storage limit. If everything has been cleaned up and the quota still hasn't updated after several days, it's probably worth opening a GitHub Support ticket because the storage usage may be stuck on their side.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Actions Build, test, and automate your deployment pipeline with world-class CI/CD other General topics and discussions that don't fit into other categories, but are related to GitHub Question Ask and answer questions about GitHub features and usage Welcome 🎉 Used to greet and highlight first-time discussion participants. Welcome to the community! source:ui Discussions created via Community GitHub templates
5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.