MPU6050 Reading Shoots Every 40 seconds

I’m planning to use the MPU6050 IMU to stabilise my quad. However, the quad was quite unstable during test flights. I suspect it is due to the sensor readings hence I placed the sensor on a flat platform and observe the readings. The readings were quite stable except for the yaw which had a constant offset of 7 degrees. Out of my surprise, after 40 seconds of testing, all yaw pitch and roll values started to differ by a significant number although the sensors were not moved. After plotting a graph in excel, I realised that it occurs every 40 seconds. I’m currently using the mpu6050 dmp to obtain the readings with the help of i2cdevlib. The readings are read at 200hz.
Does anyone know the reason behind the sudden increase?

EDIT: Graph Below

graph.doc (599 KB)

Hi, I'm not sure, but this may help.

https://howtomechatronics.com/tutorials/arduino/arduino-and-mpu6050-accelerometer-and-gyroscope-tutorial/

Tom.... :)

PID values off. error in code line 247.

The MPU6050 has no magnetometer, so it can produce a stable yaw value. Use a 9DOF sensor instead.

I bet you are having a FIFO overflow event and the value you are receiving is corrupted. Can you post the code you are using?