This is actually as designed. After reboot, the board is in an uncalibrated state, and soon it will begin automatic gyro calibration. After the calibration completes, the yaw will be automatically zeroed. However if the zero yaw request is received while calibration is in progress, the request is ignored (since zeroing the yaw during calibration will negatively impact the calibration). From the user's perspective, one could interpret the designed behavior as "if zero yaw is requested while gyro calibration is in progress, the request is deferred until calibration completes".
This is actually as designed. After reboot, the board is in an uncalibrated state, and soon it will begin automatic gyro calibration. After the calibration completes, the yaw will be automatically zeroed. However if the zero yaw request is received while calibration is in progress, the request is ignored (since zeroing the yaw during calibration will negatively impact the calibration). From the user's perspective, one could interpret the designed behavior as "if zero yaw is requested while gyro calibration is in progress, the request is deferred until calibration completes".