Iran’s admission it “unintentionally” shot down a Ukrainian passenger jet has sparked demands for justice for the 176 people on board who were killed.
The calls were led by Ukraine’s president and the prime minister of Canada, which lost 57 nationals.
Social media footage has shown protests in Iran, some of them calling for Supreme Leader Ali Khamenei to resign.
The plane was shot down on Wednesday, hours after Iran had struck two air bases housing US forces in Iraq.
Those missile strikes were Iran’s response to the US killing of senior Iranian commander Qasem Soleimani. He died in a drone strike in Baghdad on 3 January.
Iran had initially denied reports its missiles had brought down the plane, with one spokesman accusing Western nations of “lying and engaging in psychological warfare”.
Ukraine International Airlines flight PS752, en route to Kyiv, came down near Imam Khomeini Airport in Tehran shortly after take-off. Victims included dozens of Iranians and Canadians, as well as nationals from Ukraine, the UK, Afghanistan and Germany.
Writing on Facebook, Ukrainian President Volodomyr Zelensky demanded that Iran “bring the guilty to the courts”, repatriate the remains of the victims, pay compensation, give total access to Ukrainian officials and issue an apology through diplomatic channels.
Mr Zelensky spoke earlier with French President Emmanuel Macron and agreed French specialists would help decode the so-called “black box” flight recorders. Mr Macron also said he would formally launch an international investigation.
Ukraine’s prosecutor general is investigating possible wilful killing and aircraft destruction.
Canadian Prime Minister Justin Trudeau demanded “transparency and justice for the families and loved ones of the victims”.
UK PM Boris Johnson said Iran’s admission was an “important first step” and called for an independent inquiry.
He said that de-escalation was now essential, adding: “It is vital that all leaders now pursue a diplomatic way forward.”
A number of European nations made similar pleas for de-escalation, a transparent inquiry and the learning of lessons. The US has not officially commented yet.
The admission came in a statement read on state TV on Saturday morning.
It said flight PS752 had turned towards a “sensitive military centre” of the Revolutionary Guards, the force set up to defend the country’s Islamic system, and had a “flying posture and altitude of an enemy target”.
Brig-Gen Amir Ali Hajizadeh, the Revolutionary Guards’ aerospace commander, said a missile operator had acted independently and alone, mistaking the plane for a “cruise missile” as there had been reports that such missiles had been fired at Iran.
“He had 10 seconds to decide. He could have decided to strike or not to strike and under such circumstances he took the wrong decision,” Gen Hajizadeh said.
“He was obliged to make contact and get verification. But apparently, his communications system had some disruptions.”
Gen Hajizadeh said the military would upgrade its systems to prevent such “mistakes” in the future.
He said he had “wished he was dead” after being told of the missile strike.
Gen Hajizadeh also said a request had been made for a no-fly zone in the area before the incident but, for reasons that are unclear, this was rejected.
He said he had informed the authorities about what had happened on Wednesday, raising questions about why Iran had denied involvement for so long.
Ayatollah Khamenei said there was “proof of human error” and that he had asked “relevant authorities to take necessary measures to prevent” such an incident happening again.
President Hassan Rouhani said: “Iran deeply regrets this disastrous mistake.” He vowed to prosecute those responsible.
Foreign Minister Javad Zarif apologised to the families of the victims but laid part of the blame on the US. “Human error at a time of crisis caused by US adventurism led to [this] disaster,” he said.
Iran’s ambassador to the UK, Hamid Baeidinejad, apologised for sharing “wrong findings” about the crash. He had earlier said Iran was “confident” that a missile had not been launched.
“I conveyed the official findings… that [a] missile could not be fired and hit the Ukrainian plane at that period of time,” he said. “I apologise.”
BBC chief international correspondent Lyse Doucet says the Iranian leaders’ admission is highly unusual and comes at a crucial moment. Iran has decided it has to own this disaster to avoid triggering another war of words with the West or further angering its own people, she says.
Some video footage on social media has shown sporadic protests in central Tehran, with people calling for resignations and accusing officials of dishonesty.
Some chanted for the resignation of the commander in chief – Ayatollah Khamanei.
A number of social media users asked why Iranian officials had not accepted responsibility earlier, appearing only to do so after international pressure.
One wrote: “Your mistake was inadvertent. Your lie was intentional. People should not be lied to under the pretext of expediency.”
Another questioned how an air defence system could mistake a Boeing 737 with a missile.
Some users changed profile pictures to black to mourn the loss of the people on the plane.
Sadegh Zibakalam, a political scientist and former university professor based in Tehran, said it was difficult to see how officials could escape from this as “just about everyone has lied during the past three days”.
Several issues continue to cause anger. Ukraine International Airlines vice president Igor Sosnovsky said Iran should have closed the airport at the time, saying it was “absolutely irresponsible” not to do so.
There was also no warning about any potential threat, he said.
The airline expressed anger at the suggestion the plane may have veered off course, saying it was within the flight path designated by the Iranian airport dispatcher.