When check_fix_by_variance is disabled, you can get NaN covariance values, but the position_covariance_type is still COVARIANCE_TYPE_DIAGONAL_KNOWN. Downstream receivers of this may not like that (https://github.com/foxglove/studio/issues/6337).
https://github.com/rgov/gps_umd/blob/b680df6142d7dfbc8a63224116b9a4a56e964c5b/gpsd_client/src/client.cpp#L297-L299
I've included this fix in my fork so it's also part of #57.