FWIW, FetchCommand should always produce FetchResult, unless there was a network error that prevented communication from occurring.  Even if no objects were obtained, there should still be the advertised refs.  If the ref ISN'T found its an error and you should stop immediately, not fall back on a stale tracking branch that is guessed by naming convention.