Thanks for the theory! This repo has no .gitmodules file. I tried running `git fetch --no-recurse-submodules` in one of my broken repos, but it does not prevent the bug from happening. I also tried removing the submodule configuration in .git/config, that had no effect either. Maybe something is unusual on the server side. I've set up my own git server attempting to reproduce similar apache and git versions as on our corporate mirror but so far cannot reproduce the bug. I've compared the GIT_CURL_VERBOSE output to what I get for the same repo from github, but it's not very helpful. Github uses HTTP2 and my git client sends different service api calls to github so there's not much basis for comparison here. My main theory was that maybe the server-side git version was too old to handle partial clones properly. Partial clones were introduced in git 2.25. On my test git server, I set the server-side git version to 2.7.2. This did not reproduce the bug -- on the client side using a recent git version, I was still able to pull partial clones and then fetch from origin after my local copy went out of date.