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 env | grep filter
git config filter.lfs.smudge = ""
git config filter.lfs.clean = ""
# filters empty: git lfs install was never runCommon 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
- Add a step that runs
git lfs installfor the CI user. - Confirm
git lfs envnow shows the smudge/clean filters set. - Re-run the checkout so objects materialize.
git lfs install
git lfs env | grep filterInstall 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.
git lfs install --systemHow to prevent it
- Run
git lfs installduring runner or image setup. - Use
--systemscope in shared images. - Assert
git lfs envshows configured filters in CI.