Body rate setpoints over ROS2 Offboard Mode?

Hello, what is the recommended method to publish body rate setpoints over the PX4-ROS2 bridge?

offboard_control_mode.msg implies that body_rate = True is an acceptable mode.

However, trajectory_setpoint.msg does not support body rates, so I turned to vehicle_rates_setpoint.msg and implemented a publish_vehicle_rates_setpoint() function in offboard_control.cpp.

When testing offboard control through jmavsim, I can publish trajectory setpoints without a problem. However, when publishing the vehicle rate setpoints, a failsafe is triggered and the quad lands to the ground hard. The px4 console outputs:

WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] Failsafe: stop and wait

similarly to Issue 17715. I am not sure if timing is the issue as the VehicleRateSetpoints are being published at a rate of 10 Hz.

In subsequent runs I am getting the following output from the px4 console:

WARN  [ekf2] primary EKF changed 0 (filter fault) -> 1
WARN  [ekf2] primary EKF changed 1 (filter fault) -> 3
WARN  [ekf2] primary EKF changed 3 (filter fault) -> 5
WARN  [ekf2] primary EKF changed 5 (filter fault) -> 4
WARN  [ekf2] primary EKF changed 4 (unhealthy) -> 5
INFO  [commander] Landing detected	
WARN  [ekf2] primary EKF changed 5 (filter fault) -> 0
INFO  [commander] Disarmed by landing	
INFO  [tone_alarm] notify neutral

I am not sure what to make of the EKF health. My question is, what is the underlying problem and, is there a better way to publish body rate setpoints to the px4 via offboard control via ROS2?

Thanks for your help!

SOLVED: I was setting roll, pitch, yaw setpoints but not thrust. Hence, the drone fell. Upon setting msg.thrust_body = {0.0, 0.0, -5.0} offboard control performed as desired. Still not sure what triggered the EKF warnings.