Activity info.elapsedDistance has unexpected jumps

Has anyone noticed abnormal jumps of data reported by Activity info.elapsedDistance. The value seems to jump by about twice the expected rate once every 22-23 secs. This occurs both when reading a FIT file and also when having the simulator simulate data.

The attachment contains a CSV file showing a log of elapsedDistance (from a recorded FIT file) as reported by the SDK (ver 1.2.9) and highlights the data jumps. THe data was captured in ideal conditions, full GPS coverage etc.
  • If you playback a .fit file in the sim that was recorded with "Smart recording", the jumps are normal, as the data isn't saved on a constant basis (saved when needed), and therefore it's not fed back at a constant rate. (you'll see this based on the watch used to record the data)

    "simulated data" should be every second though, but it's odd in a different way. It's a 2 min repeating loop. It heads south for a bit, then angles North East. Then it jumps back to start with no data during the "jump", and I'm not sure if it was based running speed or driving in a car :).
  • One user of my Ebike Field - Nerd Style send me REALLY strange behaviour of info.elapsedDistance . He had Fenix 5S Plus with FW 7.10. 

    Please check short video. On first screen there is ebike field with distance fluctuating on left-down corner of the screen next to stopwatch while on second screen is native distance field.  The datafield reads distance from activity quite straight forward so I was quite surprised by it:

    function compute(info) {
        if(info has :elapsedDistance){
            distance = info.elapsedDistance;
            
            ....
        }
    }
    
    function onUpdate(dc) {
            // distance
            var distanceLocal = "0.0";
            var distanceUnit;
            if(mySettings.distanceUnits == Sys.UNIT_STATUTE) {
            	distanceUnit = "mi";
            	if ( distance != null ) {
            		distance = distance * 1.609344;
            	}
            } else {
            	distanceUnit = "km";
            }
            if(distance != null){
               if (distance >= 10000) {
                	distanceLocal = distance / 1000;
                	distanceLocal = distanceLocal.format("%.1f");
               } else {
                  	distanceLocal = distance / 1000;
                	distanceLocal = distanceLocal.format("%.2f");
               } 
            }
            
            dc.drawText((sc?87:79), (sc?165:150), Gfx.FONT_SYSTEM_MEDIUM, distanceLocal, Gfx.TEXT_JUSTIFY_RIGHT); 
           	dc.drawText((sc?88:80), (sc?171:157), Gfx.FONT_SYSTEM_XTINY, distanceUnit, Gfx.TEXT_JUSTIFY_LEFT);	
           	
           	.....
           	
    }

    Is there bug in this particular firmware? No other user reported something like this. This was reported 2 months ago to me.