The smudge --clean filter can fail on a file that uses an URL key:

git-annex: Cannot generate a key for backend URL
error: external filter 'git-annex smudge --clean -- %f' failed 1

One way to make this happen is:

git annex addurl --fast
git annex sync
git annex get
git annex adjust --unlock

When git-annex adjust runs git checkout of the new branch, git runs the clean filter on the unlocked files.

Another way is to have an unlocked URL key file, modify it, and run git add.

Since the smudge filter fails, git stages the file content into git.

fixed --Joey