The CI/CD workflow (testAndPublish.yml) logs a warning on runs, on the "Post Install the latest version of uv" step:
Failed to save: Unable to reserve cache with key setup-uv-2-x86_64-pc-windows-msvc-windows-2025-3.13.13-pruned-1e387602e09b4fa38d714219f180dd28433196ef167474bb137a607d3d0351d6, another job may be creating this cache.
Example run: https://github.com/dpy013/nvda/actions/runs/31646907648/job/94283911319#step:11:10
This looks like a cache-save race. A bunch of jobs run in parallel and each one runs astral-sh/setup-uv@v7 with the same uv version, runner image and Python version, so they all end up with the same internal cache key. GitHub's cache service only allows one job to reserve a key at a time, so every job except the first fails to save and prints that warning.
I also noticed the warning only shows up on pull requests — it doesn't happen when building the master branch or alpha.
The run still passes, so it's noise rather than an actual failure — but it clutters the Checks/Annotations view, and it would be good to tidy it up.
Possible ways to fix:
- Prime the uv cache once in a dedicated job before the parallel jobs start, so the rest just hit the cache.
- Give each job a distinct setup-uv cache key (e.g. via
cache-suffix).
- Check whether a newer
astral-sh/setup-uv handles concurrent saves better.
I'm happy to follow up with a PR once there's agreement on the direction.
testing action
https://github.com/dpy013/nvda/actions/runs/31646907648
The CI/CD workflow (
testAndPublish.yml) logs a warning on runs, on the "Post Install the latest version of uv" step:Example run: https://github.com/dpy013/nvda/actions/runs/31646907648/job/94283911319#step:11:10
This looks like a cache-save race. A bunch of jobs run in parallel and each one runs
astral-sh/setup-uv@v7with the same uv version, runner image and Python version, so they all end up with the same internal cache key. GitHub's cache service only allows one job to reserve a key at a time, so every job except the first fails to save and prints that warning.I also noticed the warning only shows up on pull requests — it doesn't happen when building the master branch or alpha.
The run still passes, so it's noise rather than an actual failure — but it clutters the Checks/Annotations view, and it would be good to tidy it up.
Possible ways to fix:
cache-suffix).astral-sh/setup-uvhandles concurrent saves better.I'm happy to follow up with a PR once there's agreement on the direction.
testing action
https://github.com/dpy013/nvda/actions/runs/31646907648