I would expect, from the MovePrimarySourceManager::commitOnConfig() code, that if the commitMovePrimary command against the config server fails, then the donor shard primary will fassert.
But, that doesn't seem to be the case (see repro).
It's a separate issue whether we actually want the donor shard primary to fassert blindly here. We particularly may not want to it to fassert blindly, because a config.databases entry that's missing a database version will cause the commitMovePrimary to fail (which can happen if someone directly inserts into config.databases).
EDIT: It turns out that the fassert does not work. We will just uassert instead.