DescriptionWe're seeing intermittent, recurring failures during the GitHub Actions cache export step across multiple repositories, all using This has been happening for a while now (previously worked reliably for months before failures started appearing), so it does not appear to be tied to a recent config change on our end. Environment
Workflow (relevant excerpt)```yaml
``` Error log```
|
Replies: 1 comment 1 reply
|
For this specific failure mode I would treat the Your image export and push already completed, and the failing step is only: The BuildKit docs list - name: build-push
uses: docker/build-push-action@v6
with:
tags: <ecr-registry>/<repo>:<tag>
context: .
cache-from: type=gha
cache-to: type=gha,mode=max,ignore-error=true
push: trueThat will not make GitHub's cache reservation succeed, but it prevents an intermittent cache-service/export failure from failing a build whose actual image was already pushed successfully. If you need the cache export itself to be reliable, I would switch this pipeline to a registry cache instead of cache-from: type=registry,ref=<ecr-registry>/<repo>:buildcache
cache-to: type=registry,ref=<ecr-registry>/<repo>:buildcache,mode=maxSo my decision rule would be:
If this solves the workflow failure mode, please mark the answer as accepted. |
Update: Got a response from GitHub Support — sharing the root cause and fix in case others hit this.
Root cause:
GitHub rolled out a change (June 26, 2026) that restricts cache write access for "low-trust" workflow triggers. Only these triggers can create/overwrite caches scoped to the default branch: push, workflow_dispatch, repository_dispatch, delete, registry_package, page_build, schedule. Any other trigger that resolves to the default branch gets read-only cache access — it can restore existing caches but can't write new ones.
Our CD workflow ran on pull_request with types: [closed]. That's normally fine, since pull_request runs are usually scoped to the temporary merge ref. But when…