The Merge tool silently fails to complete because this extension calls its deletion function with an empty value for email id (when a contact does not have an email).
This causes an invalid SQL command to be executed, which triggers an execption, which is silently handled resulting in CiviCRM reporting a successful merge, but it's actually failed at the delete hook; the record that should have been deleted is actually not.
The Merge tool silently fails to complete because this extension calls its deletion function with an empty value for email id (when a contact does not have an email).
This causes an invalid SQL command to be executed, which triggers an execption, which is silently handled resulting in CiviCRM reporting a successful merge, but it's actually failed at the delete hook; the record that should have been deleted is actually not.