EKF2 output divergence from Visual odometry data

Firmware version: 1.9.2
log file: https://logs.px4.io/plot_app?log=d4ec8b1f-48fe-498e-993f-8a561b540c85
Flight mode: Position Control


we just had a crash during an indoor flight using visual odometry data. Looking at the flight video, it appears the visual odometry was giving correct output (drone drifting along the positive Y axis) but the EKF interpreted the opposite (drone drifting along the negative Y axis), thus causing control inputs to increase the drift until we hit a wall and crashed. The controls were unresponsive (likely due to the EKF diverging and feeding a wrong velocity Y state to the position controller).

Before the drone started drifting, it was oscillating in a toilet bowl motion when the pilot was in position hold (no input from the sticks), it seems like the estimator’s performance was bad from take off.

We struggle to understand what could have caused the EKF to output an opposite pose estimate to what the visual odometry was feeding, any ideas?