After months of prevarication the party finally announced it would adopt the full International Holocaust Remembrance Alliance (IHRA) document, to the relief of most MPs and activists.
But it also approved a statement which “ensures this will not in any way undermine freedom of expression on Israel or the rights of Palestinians”.
And Mr Corbyn, in a rare defeat, was forced to withdraw a further statement, because he lacked support, which argued it should not be “regarded as antisemitic to describe Israel, its policies or the circumstances around its foundation as racist”.
The announcement came after debate raged for hours at a meeting of Labour’s ruling National Executive Committee (NEC), prompting suggestions that no agreement would be possible.
It was quickly criticised by the group Labour Against Antisemitism, which described the “freedom of expression” statement as “a get out of jail card”.
“There can be no caveats, no conditions and no compromises with racism,” a spokesman said.
“The NEC has been told repeatedly that it needs to adopt the IHRA in full, without caveats or conditions, if it wants the Labour Party to begin the process of dealing with its antisemitism crisis.
“It has ignored the requests of the Jewish community and denied the fundamental right of that community to define its own discrimination.”
Labour Friends of Israel echoed the criticism, saying: “A ‘freedom of expression on Israel’ clause is unnecessary and totally undermines the other examples the party has supposedly just adopted.”
After initially welcoming the decision, the Jewish Leadership Council accused Mr Corbyn of attempting to undermine the IHRA definition and said its first assessment was based on a disingenuous presentation of what had been agreed.
Chief executive Simon Johnson said: “It has now become absolutely clear that the leader of the party attempted shamefully to undermine the entire IHRA definition.
“The ‘free speech caveat’ drives a coach and horses through the IHRA definition. It will do nothing to stop antisemitism in the party.
“Now that the NEC has undermined the definition, it is clearly more important to the Labour leader to protect the free speech of those who hate Israel than it is to protect the Jewish community from the real threats that it faces.”
Margaret Hodge, the Labour MP who branded Mr Corbyn a “racist and antisemite” in a confrontation in July, called it “two steps forward and one step back”.
Nevertheless, the overall move is likely to be greeted with relief by most Labour MPs and supporters as offering hope for finally starting the process of rebuilding badly damaged trust with Jewish people.
Critics will wait to see whether the adoption of the code leads Labour to take more effective action against members accused of antisemitism.
The all-party Home Affairs Committee, in a 2016 report on adopting the IHRA document, recommended “additional clarifications to ensure that freedom of speech is maintained in the context of discourse about Israel and Palestine”.
The Board of Deputies of British Jews did not criticise the “free speech” caveat but attacked Labour for having “wasted a whole summer trying to dictate to Jews what constitutes offence against us”.
“The adoption of the internationally recognised definition by itself can only be the beginning. Action is what matters,” said Marie van der Zyl, the board’s president.
“In addition, Jeremy Corbyn needs to apologise for past antisemitic comments and affiliations.”
Rebecca Long-Bailey, a shadow cabinet and NEC member, defended the additional statement, saying: “We fully support IHRA, the definition and all of the examples, and we are not seeking to water them down.”
But she admitted: “I think it’s a small step in the right direction. We have lost faith within the Jewish community, and we know that, and it hurts pretty much all of our Labour membership to know that we are in that state of affairs at the moment.”
Before the meeting got underway, rival groups of protesters gathered noisily outside the party’s headquarters on London’s Victoria Street.
Jeremy Corbyn loyalists protested against adopting all 11 International Holocaust Remembrance Alliance examples, fearing that will curb legitimate criticism of Israel’s actions.
But a counterprotest of campaigners demanded full adoption, insisting Jewish people should determine what amounts to discrimination against them.
In July, Labour triggered huge criticism by leaving out four of the IHRA’s 11 examples of antisemitism.
The NEC statement said Mr Corbyn had promised “action against antisemitism, solidarity with the Jewish community and protection of Palestinian rights”, in a further consultation on Labour’s code of conduct.
But Brandon Lewis MP, the Conservative Party chairman, said: “Adding caveats to the internationally accepted definition of antisemitism exposes Jeremy Corbyn’s continued unwillingness to take a firm stand against anti-Jewish racism.”
Earlier, Labour’s attempts to end the bitter antisemitism row were further undermined by a leaked dossier cataloguing vile abuse, which was handed to Scotland Yard.
The file contained incidents in which Labour members allegedly described Jews as “cancer”, claimed a prison sentence for a former Auschwitz guard was “a disgusting travesty of justice”, and said a “Zionist” MP was going to “get a good kicking”.
The allegations were leaked from a meeting of Labour’s own disputes panel, which sat on 3 July, meaning that all were reported to the party’s high command by victims.
The Independent has launched its #FinalSay campaign to demand that voters are given a voice on the final Brexit deal.