Skip to content
LatchkeyLatchkey home

Git LFS "Error downloading object ... (missing)" in CI

The commit contains a valid LFS pointer, but the object it references was never uploaded to the server, so the download returns "missing". The pointer and the stored object are out of sync.

What this error means

git lfs pull or checkout prints "Error downloading object: path (oid): Object does not exist on the server" or "(missing)" and fails to fetch that object.

git-lfs
Error downloading object: data/weights.bin (9f8e7d6):
  [9f8e7d6] Object does not exist on the server or you don't have permissions to access it.
error: failed to fetch some objects

Common causes

The object was never pushed to the remote

A commit landed with the pointer but git lfs push never uploaded the content, for example when a push used --no-verify or LFS was misconfigured at commit time.

The object was pruned or lives in a different remote

A migrated or pruned object, or one stored on a fork, is not present on the remote CI clones from.

How to fix it

Push the missing objects from a machine that has them

  1. On a clone that still holds the content, run git lfs push --all origin.
  2. Confirm the object now resolves with git lfs fsck.
  3. Re-run the CI job so the fetch finds the object.
Terminal
git lfs push --all origin
git lfs fsck

Restore or re-migrate the source content

If no clone has the bytes, the object is lost; recreate the artifact and re-add it via LFS, or restore it from a backup remote.

Using this in CI

CI checkouts are shallow and detached by default, which changes the answer this command gives you. Commands that read history, branch names, or tags need the checkout configured for it.

.github/workflows/ci.yml
- uses: actions/checkout@v4
  with:
    fetch-depth: 0   # history, tags, and git describe all need this

- run: |
    git rev-parse --is-shallow-repository   # expect false
    git rev-parse --abbrev-ref HEAD          # prints HEAD when detached

How to prevent it

  • Never push with --no-verify, which can skip the LFS upload.
  • Run git lfs fsck before relying on a remote in CI.
  • Keep a backup remote for critical large artifacts.

Frequently asked questions

What causes Git LFS "Error downloading object ... (missing)" in CI?
There are 2 common causes: the object was never pushed to the remote and the object was pruned or lives in a different remote. A commit landed with the pointer but git lfs push never uploaded the content, for example when a push used --no-verify or LFS was misconfigured at commit time.
How do I fix Git LFS "Error downloading object ... (missing)" in CI?
There are 2 fixes depending on which cause you have: push the missing objects from a machine that has them and restore or re-migrate the source content. Work through them in order, since the first is the most common.
What does Git LFS "Error downloading object ... (missing)" in CI actually mean?
git lfs pull or checkout prints "Error downloading object: path (oid): Object does not exist on the server" or "(missing)" and fails to fetch that object.
How do I stop Git LFS "Error downloading object ... (missing)" in CI happening again?
Never push with --no-verify, which can skip the LFS upload. The prevention section lists 3 changes that keep it from recurring.

Related guides

References

Not every red build is your code. Latchkey repairs the ones that are not, on the runner. Start free → 30-day trial · No credit card