Indonesian rescuers searching for AirAsia flight QZ8501 pulled bodies and wreckage from the sea off the coast of Borneo on Tuesday as relatives of those on board broke down in tears on hearing the news.
Flight QZ8501 lost contact with air traffic control early on Sunday during bad weather on a flight from the Indonesian city of Surabaya to Singapore.
The navy said 40 bodies had been recovered as dusk fell.
The plane has yet to be found and there was no word on the possibility of any survivors.
"My heart is filled with sadness for all the families involved in QZ8501," airline boss Tony Fernandes tweeted. "On behalf of AirAsia, my condolences to all. Words cannot express how sorry I am."
Pictures of floating bodies were broadcast on television and relatives of the missing gathered in Surabaya wept with heads in their hands. Several people collapsed in grief and were helped away.
"You have to be strong," the mayor of Surabaya, Tri Rismaharini, said as she comforted relatives. "They are not ours, they belong to God."
A navy spokesman said a plane door, oxygen tanks and one body had been recovered and taken away by helicopter for tests.
"The challenge is waves up to three metres high," Fransiskus Bambang Soelistyo, head of the Search and Rescue Agency, told reporters, adding that the search operation would go on all night. He declined to answer questions on whether any survivors had been found.
About 30 ships and 21 aircraft from Indonesia, Australia, Malaysia, Singapore, South Korea and the United States have been involved in the search of up to 10,000 square nautical miles.
The plane, which did not issue a distress signal, disappeared after its pilot failed to get permission to fly higher to avoid bad weather because of heavy air traffic, officials said.
On board QZ8501 were 155 Indonesians, three South Koreans, and one person each from Singapore, Malaysia and Britain. The co-pilot was French.