Telemetry plugin claims healthy, but position is NAN

After initializing the connection with a PX4 simulator, we use Telemetry::health_all_ok() which checks _health.is_gyrometer_calibration_ok && _health.is_accelerometer_calibration_ok && _health.is_magnetometer_calibration_ok && _health.is_local_position_ok && _health.is_global_position_ok && _health.is_home_position_ok. However we have encountered instances where this check returns true, but immediately calling Telemetry::position() will return a position structure where all values at NaN. This appears to either be a bug such that position flags should not be set to true yet, or the result of the check is not clear.

Here is a snippet of out code:

void wait_for_healthy()
        while (telemetry_plugin->health_all_ok() != true)
            std::cout << "Vehicle is getting ready...\n";
            std::isnan(telemetry_plugin->position().latitude_deg) ||
            std::isnan(telemetry_plugin->position().longitude_deg) ||
            std::isnan(telemetry_plugin->position().absolute_altitude_m) ||
            std::cout << "Position is initializing...\n";

and our output, where we would not expect to see “Position is initializing” since Telemetry::health_all_ok returned true:

[12:12:07|Info ] MAVSDK version: v1.4.0-406-g5cead110 (mavsdk_impl.cpp:24)
Waiting to discover system on udp://
[12:12:07|Debug] Initializing connection to remote system... (mavsdk_impl.cpp:623)
[12:12:07|Debug] New: System ID: 1 Comp ID: 1 (mavsdk_impl.cpp:309)
[12:12:07|Debug] Component Autopilot (1) added. (system_impl.cpp:384)
System discovered
Setting battery telemetry rate to 1Hz...
[12:12:07|Warn ] Vehicle type changed (new type: 13, old type: 0) (system_impl.cpp:232)
[12:12:07|Debug] Component Gimbal (154) added. (system_impl.cpp:384)
Setting position telemetry rate to 1Hz...
Position is initializing...
Initial position: position:
    latitude_deg: 46.9704147
    longitude_deg: 31.9705677
    absolute_altitude_m: 43.9100036621094
    relative_altitude_m: 0.0550000034272671