Error updating submodules

Hi, I don’t recall seeing this error before.

git pull git submodule update --init --recursive

error: Server does not allow request for unadvertised object 2a150736601bb3113877bb673fb934bb60d46ec5
Fetched in submodule path ‘external_dependencies/netgen/external_dependencies/pybind11’, but it did not contain 2a150736601bb3113877bb673fb934bb60d46ec5. Direct fetching of that commit failed.
Failed to recurse into submodule path ‘external_dependencies/netgen’

When it failed, I tried git submodule sync, then retried the command, but got the same error. Should I just clone the repo again?


I just cloned the repository again and did not have any trouble updating submodules after that.


Hi Dow,

The reason for this error is that we changed the upstream url for the pybind submodule. This is necessary to apply patches to pybind11 which are not (yet) upstream. This update is not done automatically with ‘git pull’, so you have to do:

git submodule update --init --recursive git submodule sync --recursive git submodule update --init --recursive

The first update will fetch the latest Netgen, but fails at updating pybind11 inside Netgen. ‘submodule sync’ will update the upstream urls of all submodules (including pybind11). Afterwards the second update checks out the correct version.

Note that you have to do this only once (we will update the documentation). Checking out the latest version from scratch also works around this as you experienced.