Had a similar situation where a server side hook was involved, as @VonC mentioned, while trying to do the initial push to a empty Bitbucket Git repo (self-hosted in-house Bitbucket instance). The push contained commits from me and other earlier colleagues.
In my case it was the YACC (Yet Another Commit Checker) hook which complained about some e-mail addresses not known to the server. Those were used in commits during early project setup, by colleagues who meanwhile left the organization, and their accounts and e-mail adresses were meanwhile deleted. See also this Atlassian article.
But, instead of globally deactivating the hook (as suggested by the Atlassian article):
- I have first explicitly activated the hook for my repo with empty settings: that overrides only for my repo the global hook settings with NOP ("no operation"),
- then I made the initial push,
- and then I disabled back the hook for my repo (global plugin remains active, but only with the server-wide hook settings!).