Pilot error and failure to follow safety guidelines probably led to the crash of an Air India Express plane in August last year, investigators quoted by BBC.
The passenger plane with 190 people on board crashed at the Calicut airport in the southern state of Kerala, killing 21 people.
The Boeing 737, which had flown from Dubai, skidded off the runway in rain and broke in two after landing.
The flight was repatriating Indians stranded by the coronavirus crisis.
The dead included both pilots. Seventy-five passengers were seriously injured.
The aircraft crashed as it attempted to land for a second time. The first attempt was aborted by the pilots because of the heavy monsoon-season rainfall lashing Kerala.
The report by India's Aircraft Accident Investigation Bureau said there were several 'violations' of operation procedures before landing by the pilot.
They include that not carrying out 'adequate briefing' for landing with tailwinds in rain and poor visibility, as well as failure to 'quickly calculate accurate landing data in adverse weather conditions', contributed to the crash.
A non-functioning windshield wiper had also impaired visibility, the 257-page report said.
The pilot also 'did not make the mandatory announcement for the cabin crew to be seated on the first approach for landing... This is a very serious omission and compromises cabin crew', the report said.
The report added that "systemic failures" could have also contributed to the crash.
"These usually occur due to prevailing safety culture that give rise to errors, mistakes and violation of routine tasks performed by people operating within the system," it said.
Plane crashes have happened before during the monsoon season, in India which lasts from June to September and wreaks havoc across south Asia every year.
In May 2010, 158 people died when an Air India Express flight overshot Mangalore airport runway and crashed.