Georgi Parvanov on Thursday said he had vetoed a law banning Communist-era agents from working in the diplomatic service, dpa reported.
Parvanov said the legislation, an amendment to the diplomatic service act, was discriminatory and violated the constitution and returned it to parliament for a new debate.
"More than twenty years since democratic reforms ... legislation conducive to divisions is unacceptable," said Parvanov, of the opposition Socialist Party.
The amendment, passed by the parliament two weeks earlier, paves the way for the replacement of ambassadors who spied in other countries for the secret service during the Communist era.
A parliamentary report in late 2010 disclosed that 37 ambassadors, or around half of all ambassadors currently serving abroad, had worked as spies.
Following Parvanov's veto, the law must be debated anew no earlier than September. But legislators can overrule the veto and push the legislation through unchanged.
The conservative Prime Minister Boyko Borisov had pledged to replace all those named.
Parvanov, who is nearing the end of his second term in office, is himself a former secret service informant.