title: Git pull - smudge filter lfs failed
body: <p>I'm attempting to pull code onto our server from Github (<code>git pull origin master</code>). </p>
  
  <p>This worked before. However, now, I'm receiving the following error:</p>
  
  <pre><code>$ git pull origin master
  From github.com:org-name/repo-name
   * branch              master     -&gt; FETCH_HEAD
  Updating 8024663e..e458e5c1
  fatal: path/to/file.msi: smudge filter lfs failed
  </code></pre>
  
  <p>I ran the same command with <code>GIT_TRACE=1</code>:</p>
  
  <pre><code>$ GIT_TRACE=1 git pull origin master
  19:25:26.331064 git.c:371               trace: built-in: git 'pull' 'origin' 'master'
  19:25:26.333947 run-command.c:350       trace: run_command: 'fetch' '--update-head-ok' 'origin' 'master'
  19:25:26.334661 exec_cmd.c:116          trace: exec: 'git' 'fetch' '--update-head-ok' 'origin' 'master'
  19:25:26.337625 git.c:371               trace: built-in: git 'fetch' '--update-head-ok' 'origin' 'master'
  19:25:26.344457 run-command.c:350       trace: run_command: 'ssh' 'git@github.com' 'git-upload-pack '\''org-name/repo-name.git'\'''
  19:25:26.925565 run-command.c:350       trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
  19:25:26.937016 run-command.c:350       trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
  19:25:26.937833 exec_cmd.c:116          trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
  19:25:26.941292 git.c:371               trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
  From github.com:org-name/repo-name
   * branch              master     -&gt; FETCH_HEAD
  19:25:26.994717 run-command.c:1130      run_processes_parallel: preparing to run up to 1 tasks
  19:25:26.994880 run-command.c:1162      run_processes_parallel: done
  19:25:26.995780 run-command.c:350       trace: run_command: 'gc' '--auto'
  19:25:26.996735 exec_cmd.c:116          trace: exec: 'git' 'gc' '--auto'
  19:25:27.000596 git.c:371               trace: built-in: git 'gc' '--auto'
  19:25:27.002716 run-command.c:350       trace: run_command: 'merge' 'FETCH_HEAD'
  19:25:27.003445 exec_cmd.c:116          trace: exec: 'git' 'merge' 'FETCH_HEAD'
  19:25:27.006078 git.c:371               trace: built-in: git 'merge' 'FETCH_HEAD'
  Updating 8024663e..e458e5c1
  19:25:27.420945 run-command.c:350       trace: run_command: 'git-lfs filter-process'
  19:25:27.470865 run-command.c:209       trace: exec: '/bin/sh' '-c' 'git-lfs filter-process' 'git-lfs filter-process'
  trace git-lfs: run_command: 'git' version
  trace git-lfs: run_command: 'git' config -l
  trace git-lfs: Initialize filter-process
  trace git-lfs: Read filter-process request.
  trace git-lfs: Read filter-process request.
  fatal: path/to/file.msi: smudge filter lfs failed
  19:25:27.998635 run-command.c:42        trace: run_command: running exit handler for pid 18022
  </code></pre>
  
  <p>I verified my ssh credentials are correct:</p>
  
  <pre><code>$ ssh -T git@github.com
  Hi user-name! You've successfully authenticated, but GitHub does not provide shell access.
  </code></pre>
  
  <p>And, in fact, I know the credentials are ok, because the <code>pull</code> will bring down the <code>.gitattributes</code> file (along with other small file changes I've done):</p>
  
  <pre><code> file.msi filter=lfs diff=lfs merge=lfs -text
  </code></pre>
  
  <p>I verified Git LFS appears to be configured correctly:</p>
  
  <pre><code>$ git config -l
  filter.lfs.process=git-lfs filter-process
  filter.lfs.required=true
  filter.lfs.clean=git-lfs clean -- %f
  filter.lfs.smudge=git-lfs smudge -- %f
  ...
  </code></pre>
  
  <p>I found this <a href="https://github.com/git-lfs/git-lfs/issues/858#issuecomment-159129881" rel="noreferrer">Github issue</a>, and I tried all three steps:</p>
  
  <pre><code>$ echo "protocol=https\nhost=github.com" | git credential fill
  $ echo "protocol=https\nhost=github.com" | git credential fill | git credential reject
  $ echo "protocol=https\nhost=github.com" | git credential fill | git credential approve
  </code></pre>
  
  <p>The first step asked for my username. So, as it says, it doesn't appear that Git LFS is caching anything.</p>
  
  <p>I don't have much experience with Git LFS, and frankly, I am out of ideas on how to approach this problem. </p>
  
  <p>There are two actions I took recently that might have broken something:</p>
  
  <ol>
  <li>I removed a user from our repository. The server's ssh key belonged to the user. We added a deployment key, but I read that <a href="https://github.com/git-lfs/git-lfs/issues/716#issuecomment-146251920" rel="noreferrer">Git LFS didn't support deployment keys</a> (although, it appears that support was added recently). So, we switched to a user key. Both keys were confirmed with the <code>ssh -T git@github.com</code> test. Still, perhaps there's an authentication issue? </li>
  <li>I pulled the repository down onto a server without Git LFS. I didn't realize it at the time, but the files transferred to the destination server fine. However, perhaps this broke something in the repository?</li>
  </ol>
  
  <p>Any help you could lend would be greatly appreciated. </p>
  
  <p>PS - I'm sorry if my anonymizing creates confusion. I replaced our actual IP address with <code>X.X.X.X</code>; our organization name with <code>org-name</code>; our repo name with <code>repo-name</code>; our Github user with <code>user-name</code>; the file name with <code>file.msi</code>; and, a few more things. </p>
  
  <p>EDIT 5/16/17: Added language to make it clear that it used to work... and that I broke it. </p>