I found that the is_error parameter of the TeardownHistoricSnapshot() function is not actually used anywhere in the code.
This parameter was introduced in commit
b89e151054a05f0f6d356ca52e3b725dd0505e53 as part of the logical decoding feature, but has never been used. The function just sets two global pointers to NULL regardless of the parameter value.
So I' ve submitted a patch to remove this unused parameter.