Iran's civil aviation body blamed a misaligned radar and an error by an air defence operator in a final report into the shooting-down of a Ukrainian passenger plane in January 2020 that killed all 176 people aboard.
The report on Wednesday into the downing of Ukraine International Airlines Flight PS752 "makes no attempt to answer critical questions about what truly happened and appears incomplete," Canada said in a statement.
Many of the victims killed in the crash were Canadian citizens or permanent residents.
"There will be no solace for the families because the whole story, the complete story with the hard evidence to back it up is not being provided," added Ralph Goodale, an advisor to Canada's prime minister on PS752.
Ukraine's foreign minister also criticised the report, calling it a cynical attempt by the Islamic Republic authorities to cover up the true reasons for the crash, which Ukraine suspects was intentional.
Iran's Revolutionary Guards shot down the Ukraine International Airlines flight on Jan. 8, 2020 shortly after it took off from Tehran Airport.
The Iranian government later declared that the shooting-down was a "disastrous mistake" by forces who were on high alert during a regional confrontation with the United States.
The Iranian report said: "The plane was identified as a hostile target due to a mistake by the air defence operator...near Tehran and two missiles were fired at it," according to the agency's website.
"The flight's operation did not have a role in creating the error by the air defence battery," the report added.
Iran was on edge about possible attacks after it fired missiles at Iraqi bases housing U.S. forces in retaliation for the killing days before of its most powerful military commander, Qassem Soleimani, in a U.S. missile strike at Baghdad airport.
As in a preliminary report issued last June, Iran's Civil Aviation Organization said the error arose from a misalignment of a battery's radar and a lack of communication between the air defence operator and his commanders.
"Following a tactical relocation, the relevant ADU (air defence unit) failed to adjust the system direction due to human error, causing the operator to observe the target flying west from IKA (airport) as a target approaching Tehran from the southwest at a relatively low altitude," the final report said.
"Without receiving a go-ahead or response from the command centre, he (operator) came to identify the target as a hostile one and fired missile(s) at the aircraft against the procedure planned," it said.
Ukrainian Foreign Minister Dmytro Kuleba lambasted the report in a post on Facebook. "What we saw in the published report today is nothing more than a cynical attempt to hide the true reasons for the downing of our plane," he said.
Kuleba said Iran's investigation did not follow international practice, ignored evidence supplied by Ukraine and drew selective conclusions.
Ukraine and an independent United Nations investigator have previously raised questions about whether the downing of the airliner was intentional rather than accidental.
The U.N. last month also said the Iranian government's explanations contained inconsistencies.
Separately Ukrainian prosecutors have launched their own investigation into possible wilful killing in connection with the crash. Canada said it will soon disclose the results of its own investigations.
The Tehran government has allocated $150,000 for damages to be paid to families of the crash victims and said several people have been put on trial over the disaster.
Ukraine has said the compensation should be set through talks, taking into account international practice, once the causes of the tragedy are established and those responsible are brought to justice.
Habib Haghjoo, an Iranian-born Canadian who lost his daughter and granddaughter in the crash, said by phone the report failed to answer key questions and didn't say anything new.
"It's unacceptable."