Canada's PM Justin Trudeau has apologised for his country's role in turning away a ship carrying over 900 Jewish refugees fleeing persecution.

In 1939, German liner the MS St Louis sailed to Havana, Cuba, but that country's government refused them entry, although they had visas.

The US and Canada also blocked them, denying the passengers safe haven.

The ship was forced to return to Europe and 254 of the refugees later died in Nazi concentration camps.

Addressing Canada's parliament, Mr Trudeau spoke of how the Liberal government of the day "was unmoved by the plight of these refugees".

"The government chose to turn its back on these innocent victims of Hitler's regime," he said.

Canada's refusal was indicative of its restrictive rules towards Jewish immigration at the time.

"Bitter resentment towards Jews were enshrined in our policies," said the prime minister on Wednesday.

During the 12-year Nazi regime in Germany, from 1933 to 1945, Canada accepted fewer Jewish refugees than any other Western nation.

A senior Canadian immigration official, asked during the war about how many Jews would eventually be considered for entry into Canada, had a now infamous response: "None is too many."

Mr Trudeau called Wednesday's formal recognition of the historic wrongdoing "a long overdue apology".

"We are sorry for the callousness of Canada's response, we are sorry for not apologising sooner."

Shimon Fogel, with the Centre for Israel and Jewish Affairs, told the BBC that the acknowledgment is "important to achieve closure and recognition of a particularly dark chapter in Canadian history".

He hopes recognition of these types of historic wrongs will help ensure better policies during the current global period of upheaval and increased migration.

The federal apology also comes in the wake of the shooting at the Tree of Life synagogue in Pittsburgh, an attack motivated by anti-Semitism.

The alleged gunman, Robert Bowers, is accused of killing 11 Jewish worshippers on 27 October. He has pleaded not guilty.

American authorities have called the attack on the synagogue the worst anti-Semitic incident in US history.

Mr Trudeau touched on the tragedy as he condemned ongoing anti-Semitic attitudes in Canada and around the world.

"This was heinous anti-Semitic act of violence," he said. "These tragic events ultimately attest to the work we still have to do."