I have never had problems with M2 Pro, Anafi and a Visuo xs812 with regard to compass calibration. Tend not to do it with the first 2 unless asked which I haven’t recently.
The Air has been a different matter. On one occasion I put it down to a large metal ships container some 100m away so I moved 200m away and after several tries managed calibration. Had this experience a few times with no obvious magnetic interference objects near. Experienced this again the other day and moved all over the place to try to calibrate with magnetic interference warning appearing wherever I tried. Trying in the middle of an empty car park with no cars and failing gave up and flew the M2 Pro and Anafi without issue.
On arriving home remembered someone on the Mavic Pilots forum mentioning that wearing a watch can be an issue. Unlikely I thought! Took my Apple watch off which indeed does have a magnetic charging system and ventured into my garden. No magnetic interference warning and calibration took a couple of twirls of the drone - job done.
Went back to the same site I couldn’t take off from previous day in same spot minus watch. No problem and not asked to calibrate despite significant change of location. Flew flawlessly.
Don’t think I have “proved” anything yet but it does seem in my case that wearing a magnet may well be the cause. Will need to try a few more times to see if leaving the watch in the car means less calibration requests and compass errors. Possibly get companion flyer to do the twirling at some distance away from me with my watch on and see how that goes,