The Gabinete de Prevenção e Investição de Accidentes com Aeronaves e de Accidentes Ferriviários (GPIAAF) opened an investigation into the accident.
Early indications are that the maintenance vehicle passed a signal at danger and was run into by the passenger train.

In the wake of this accident, the absence of automatic train protection (ATP) in maintenance vehicles was scrutinized.
It came to light that, in 2018, after several events where such vehicles passed signals at danger, GPIAAF recommended that IP reassess the possibility of equipping these vehicles with ATP and act to ensure train driving qualifications of their maintenance staff.
IP agreed to install ATP, but this was met with difficulties in sourcing CONVEL-compatible equipment from Bombardier.

While the suspected cause would be human error — the driver passing the signal at danger —, ATP would have prevented this accident by braking the maintenance vehicle.
Its incursion into the reserved block was, however, detected by the track circuit and signals were updated accordingly, but the passenger train had already passed the previous signal and balise, and proceeded at top speed expecting a clear track ahead.
The Gabinete de Prevenção e Investição de Accidentes com Aeronaves e de Accidentes Ferriviários (GPIAAF) opened an investigation into the accident. Early indications are that the maintenance vehicle passed a signal at danger and was run into by the passenger train.
In the wake of this accident, the absence of automatic train protection (ATP) in maintenance vehicles was scrutinized. It came to light that, in 2018, after several events where such vehicles passed signals at danger, GPIAAF recommended that IP reassess the possibility of equipping these vehicles with ATP and act to ensure train driving qualifications of their maintenance staff. IP agreed to install ATP, but this was met with difficulties in sourcing CONVEL-compatible equipment from Bombardier.
While the suspected cause would be human error — the driver passing the signal at danger —, ATP would have prevented this accident by braking the maintenance vehicle. Its incursion into the reserved block was, however, detected by the track circuit and signals were updated accordingly, but the passenger train had already passed the previous signal and balise, and proceeded at top speed expecting a clear track ahead.
Soure train crash