Canadian Prime Minister Justin Trudeau on Wednesday offered an "unreserved" apology in parliament after the legislature publicly -- if unwittingly -- celebrated a Ukrainian World War II veteran who'd fought alongside the Nazis.

The incident last week during a visit by Ukrainian President Volodymyr Zelensky has shaken Canada, prompted the speaker of parliament to step down and triggered diplomatic turmoil.

"I would like to present unreserved apologies for what took place on Friday and to President Zelensky and the Ukrainian delegation for the position they were put in, for all of us who were present," Trudeau told lawmakers.

"To have unknowingly recognized this individual was a terrible mistake and a violation of the memory of those who suffered grievously at the hands of the Nazi regime."

The Canadian leader was referring to an embarrassing incident that marred a visit by Zelensky last week, sparking an uproar that led to the resignation of the speaker on Tuesday.

The Ukrainian president was in Canada as part of a tour to bolster Western support for his country's struggle against Russian invasion.

Zelensky was in the chamber as guest of honor when the speaker, Anthony Rota, name-checked the elderly veteran as a World War II hero, prompting a standing ovation.

It emerged afterward that the veteran had served in a Nazi-linked military unit.

Trudeau said earlier Wednesday that the mistake "deeply embarrassed Parliament, and Canada," and he was apologizing in front of all Canadians and the Jewish people around the world.

"It was a horrendous violation of the memory of the millions of people who died in the Holocaust," Trudeau said.

Rota stepped down, saying he had "profound regret for my error" and the pain he caused to Jewish communities in Canada and elsewhere.

Trudeau's government has been under intense pressure over the affair, which Conservative opposition leader Pierre Poilievre described as the "biggest single diplomatic embarrassment" in Canada's history.

At the high-profile event for Zelensky, Rota had hailed Yaroslav Hunka as "a Ukrainian-Canadian war veteran from the Second World War who fought for Ukrainian independence against the Russians" and "a Ukrainian hero and a Canadian hero."

Hunka served in the 14th Waffen Grenadier Division of the SS, "a Nazi military unit whose crimes against humanity during the Holocaust are well-documented," according to the Friends of Simon Wiesenthal Center.

The Jewish advocacy group called the incident "shocking" and "incredibly disturbing."

Russia quickly jumped on the issue, saying Canada now had to "bring to justice" the 98-year-old man.

Moscow has for years tried to paint the pro-Western Ukrainian government led by Zelensky -- who is Jewish -- as neo-Nazi and has used the messaging intensively on its state-controled media to justify the invasion of Ukraine to the Russian people.

Russia's ambassador to Canada, Oleg Stepanov, blasted the "outrageous commemoration" and called on Trudeau to apologize to Moscow for Hunka and his unit's "multiple war crimes" against the Russian people.

Canada has the second largest Ukrainian diaspora in the world after Russia.

Trudeau said "I also want to reiterate how deeply sorry Canada is for the situation this put President Zelensky and the Ukrainian delegation," and he signaled that Ottawa had already contacted Kyiv and Zelensky to apologize.

"It is extremely troubling to think that this egregious error is being politicized by Russia and its supporters to provide false propaganda about what Ukraine is fighting for."