See IRC for some context: https://secure.phabricator.com/chatlog/channel/6/?at=157066
The ref updates can fail when one of the cursors points at a branch which no longer exists and has been GC'd, by causing Git to issue a command like git log <hash> --not <bad hash>.
We should detect and remove missing branches before we reach the ref update phase.