El avión había despegado de la ciudad indonesia de Surabaya en dirección hacia Singapur, pero media hora más tarde perdió el contacto con la torre de control y fue hallado días después en el fondo del mar de Java.
Una grieta en la soldadura de una juntura provocó que el ordenador de control de vuelo fallase hasta cuatro veces hasta el fatal desenlace.
Los registros de la compañía señalan que el mismo ordenador ya había fallado hasta 23 veces en un solo año y que los intervalos se habían reducido en los últimos tres meses.
Las conversaciones de cabina grabadas en la caja negra han desvelado que la tripulación intentó resolver el problema apagando el ordenador para resetearlo, lo que provocó que el piloto automático se desactivara y el avión perdiese el control.
"El avión entró en una fase prolongada de bloqueo que superaba la capacidad de la tripulación para recuperarse", señala la investigación del Comité de Nacional de Seguridad en el Transporte de Indonesia.
El informe, en el que han colaborado Australia, Francia, Singapur y Malasia, también subraya el insuficientemente entrenamiento de la tripulación para superar una situación complicada como es la inclinación de más de 45 grados.
La compañía ya está entrenando a su tripulación en ese sentido tras el accidente, según el informe.
Las conversaciones grabadas también muestran las confusas instrucciones del comandante al copiloto en los momentos previos al accidente.
El piloto había pedido a la torre de control ascender para evitar una tormenta y en menos de medio minuto pasó de los 32.000 pies a los 37.400, una velocidad que dobla la habitual en los aviones comerciales.
La nave emprendió después un descenso igualmente rápido hasta desaparecer del radar minutos después.
El informe también califica el mantenimiento de la nave como "no óptimo" y añade que la aerolínea ha llevado a cabo 51 nuevas medidas desde el accidente para aumentar la seguridad.
En el avión viajaban 155 indonesios, tres surcoreanos, un inglés, un francés, un malasio y un singapurés.
Otro fallo mecánico causó en junio la caída de un avión militar con 141 personas a bordo en un barrio residencial.
El historial de tragedias justificó que la Unión Europea prohibiese entre 2007 y 2009 la entrada de naves de aerolíneas indonesias.