You need valid data for any vo2 max estimation. If its “dirty” (detects anomalies) it won’t accept it whether it is gps or hr. If you see tracks are weird or wild swings in heart rate, thats the cause. Then you need more than 15 minutes of uninterrupted valid data from both. It rules out part of the garage in garbage out. You hr resting and max also have to be sane. Not sure if it actually take cadence, I think it does, it all needs to match, at least ballpark.