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.
What has the reaction been to Iran's admission?
Ukrainian President Volodomyr Zelensky has demanded 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.
He later spoke with Iranian President Hassan Rouhani and said he had been assured that "all persons involved in this air disaster will be brought to justice".
Canadian Prime Minister Justin Trudeau also spoke with the Iranian president.
Mr Trudeau said he was "outraged and furious" and had told Mr Rouhani that there must be a full investigation with "full clarity on how such a horrific tragedy could have occurred".
Mr Trudeau said: "Canada will not rest until we get the accountability, justice and closure the families deserve... they are hurt, angry and grieving and they want answers."
He said Mr Rouhani had made a commitment to de-escalation and added that Canadian crash investigators were due to arrive in Tehran shortly.
US Secretary of State Mike Pompeo tweeted video of the protests in Iran, saying: "The voice of the Iranian people is clear. They are fed up with the regime's lies, corruption, ineptitude, and brutality of the IRGC [Revolutionary Guards] under Khamenei's kleptocracy. We stand with the Iranian people who deserve a better future."
UK PM Boris Johnson said Iran's admission was an "important first step" and that de-escalation was now essential.
What has Iran's military admitted?
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.
What have Iran's leaders said?
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 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.
How have Iranian citizens reacted?
Some video footage on social media has shown protests in central Tehran, with people calling for resignations and accusing officials of dishonesty.
Protests were reported at the Sharif and Amir Kabir universities.
Some demonstrators chanted for the resignation of the commander in chief - Ayatollah Khamenei.
The semi-official Fars news agency carried a rare report of the anti-government unrest, saying up to 1,000 people had gathered, chanting slogans against leaders and tearing up pictures of Soleimani.
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."
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".
Has Ukraine accepted the explanations?
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.
A statement later on Saturday from Iran's Civil Aviation Organisation, reported by the Tasnim news agency, clarified that there was no proof the plane had deviated.