It looks like you've done the drone on the car roof test
The steel deflects the compass much more than the earth's magnetic field would and as a result, the compass warns you of a problem.
A bigger problem is when the drone is launched from close to a smaller steel item, it could just be a nail or screw in a wooden deck (if it's close enough to the compass) or something larger and further away.
It the deflection of the compass is of a similar strength to the earth's magnetic field but at a different direction, there will be no warning.
But the deflected compass reading will be used to initialise the mag_yaw values of the IMU gyro sensors.
When the drone launches and the compass is no longer affected by the steel, that's when the serious yaw error situation starts (and it usually ends badly).
Here is an illustration of why you could launch from a concrete surface 20 times without a problem, but it might give problems the next time.
You don't know the thickness of the concrete or where the thicker bars or overlapped mesh panels are.
If your compass is close enough to a large enough mass of steel, all bets are off.
And just an inch or two difference in placing the drone is all it might take.
I can't see how a concrete surface would cause the OP's problem and my best guess without data is a low battery RTH or he turned off the controller triggering Failsafe RTH.
Both have been seen many times before.
Maybe he'll come up with his data to clear up what really happened?