India's civil aviation minister on Saturday warned against speculation over the cause of a disaster in which at least 18 people died after an Air India Express jet overshot a runway in a storm and plunged down a bank.

Critics have raised questions about potentially dangerous conditions at Kozhikode airport in the southern state of Kerala, where the Boeing 737 crash-landed with 190 passengers and crew aboard.

The Air India Express jet skidded off the runway at Kozhikode airport in the southern state of Kerala
The Air India Express jet skidded off the runway at Kozhikode airport in the southern state of Kerala AFP / Money SHARMA

The plane's black box recorders have been recovered, and will be examined as part of the investigation.

Reports have said the pilots made two attempts to land in the fierce winds and rain before crash, while opposition politicians highlighted warnings that had reportedly been made about the Kozhikode runway.

Map of India locating Kozhikode airport in Kerala state, where a passenger jet skidded off the runway after landing in heavy rain
Map of India locating Kozhikode airport in Kerala state, where a passenger jet skidded off the runway after landing in heavy rain AFP / STAFF

Minister Hardeep Singh Puri acknowledged that issues had been "routinely red flagged" by the civil aviation authority about the runway used in the crash but they had been "addressed" by the airport owner.

He added on Twitter: "I will encourage all to exercise patience and refrain from making speculative observations bordering on the irresponsible."

Map of India locating Kozhikode airport in Kerala state, where a passenger jet skidded off the runway after landing in heavy rain
Map of India locating Kozhikode airport in Kerala state, where a passenger jet skidded off the runway after landing in heavy rain AFP / STAFF

Some 149 people were still in local hospitals after the crash of the special flight from Dubai to bring back Indians stranded by the coronavirus pandemic.

The jet plunged more than 10 metres (35 feet) down an embankment and broke in two. Rescue officials said it was "a miracle" that fuel that leaked did not catch fire.

Dozens of those injured were taken to area hospitals
Dozens of those injured were taken to area hospitals AFP / -

Kozhikode is considered a tricky airport as it is built on a hill and has a "table-top" runway with a steep drop at one end.

In 2017, a Spicejet Bombardier Q-400 plane carrying 75 people came off the same runway when it was wet and hit lights on the edge.

The jet broke into two pieces after it skidded off the so-called table-top runway
The jet broke into two pieces after it skidded off the so-called table-top runway AFP / Favas JALLA

Kerala has been hit by deadly floods and landslides in recent days and heavy rains had been falling for several hours at Kozhikode as the jet landed.

Indian media quoted air traffic control officials and a flight tracker website as showing the Boeing 737 twice circled and started to land before it crashed at the third attempt.

Scores of passengers were injured in the plane crash
Scores of passengers were injured in the plane crash AFP / -

The jet repeatedly jumped up and down in buffeting winds before the landing, survivors told Indian television.

Passenger Renjith Panangad, 34, recalled the plane touching the ground and then everything went "blank".

"After the crash, the emergency door opened and I dragged myself out somehow," he told AFP from a hospital bed in Kozhikode.

"The front part of the plane was gone -- it was completely gone. I don't know how I made it but I'm grateful. I am still shaken."

The impact was so brutal that the nose of the jet finished about 20 metres (yards) from the back half.

Most of the fatalities, who included the two pilots and four children, were in the front.

"All that we could hear were screams all around. People were soaked in blood everywhere, some had fractures, some were unconscious," said local resident Fazal Puthiyakath who was among the first at the scene.

Local taxi drivers and traders joined airport rescuers to free people from the wreckage in the dark and wet. It took three hours to clear all the injured and bodies, officials said.

The flight was one of hundreds in recent months to bring home tens of thousands of Indians stranded abroad by the coronavirus pandemic, many of them in Gulf countries.

Kerala's health minister K.K. Shailaja asked all those involved in the rescue to go into isolation because of the risk of catching the coronavirus from passengers.

The last major plane crash in India was in 2010 when an Air India Express Boeing 737-800 from Dubai to Mangalore overshot the runway killing 158 people.