Skip to content
Latchkey

Git LFS filters not registered ("git lfs install" not run) in CI

The git-lfs binary can be present yet inert: until git lfs install registers the clean and smudge filters in git config, checkouts leave pointer text and commits store raw content.

What this error means

LFS-tracked files stay as pointer text after checkout, or git check-attr filter shows lfs but files are not materialized, and git lfs env shows the filters unconfigured.

git-lfs
$ git lfs env | grep filter
git config filter.lfs.smudge = ""
git config filter.lfs.clean = ""
# filters empty: git lfs install was never run

Common causes

git lfs install was never executed

On a fresh container or a new user, the LFS filters are not in git config until git lfs install runs.

A restricted config scope

Installing at a scope the CI user does not read (wrong HOME or config file) leaves the filters unregistered for the job.

How to fix it

Run git lfs install before checkout

  1. Add a step that runs git lfs install for the CI user.
  2. Confirm git lfs env now shows the smudge/clean filters set.
  3. Re-run the checkout so objects materialize.
Terminal
git lfs install
git lfs env | grep filter

Install at the right scope

Ensure the install writes to the config the job uses; use git lfs install --system in images where all users need it.

Terminal
git lfs install --system

How to prevent it

  • Run git lfs install during runner or image setup.
  • Use --system scope in shared images.
  • Assert git lfs env shows configured filters in CI.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →