Gregorian paradox

Gregorian.info is behaving differently on this particular watch. It's a Fenix5X belonging to a yacht racing colleague who is running my raceQs app. He has reported that the app is incorrectly displaying the time.

I now have his watch in my lab and indeed it's misbehaving.

Gregorian.info is returning a time 1:22 (82 seconds) slow!

 

Here's the code:

function GPSData(positionInfo){
	   timeSecs = Position.getInfo().when.value();// work-around for 1024 GPS time issue
....


formattedReportTime = formatToReportTime(	timeSecs);


function formatToReportTime(timeSecs){
		local_TZ = 0; // so I can use local_TZ in the Engine without having to use :debug
		var timestruct = Gregorian.info((new Time.Moment(timeSecs )), Time.FORMAT_SHORT);
	  	return timestruct.hour.format("%02u")
	    	+ ":" + timestruct.min.format("%02u")
	    	+ ":" + timestruct.sec.format("%02u");		 
	}

I'm getting the GPS time with Position.getInfo()...

Then passing the timestamp to formatToReportTime.

It works fine on all my devices, in the Sim and none of my thousands of users is reporting an issue.

I thought it may have been an issue with the phone's timezone, but I  have connected the 5X to my iPhone and it's still wrong.

The watch's Settings>System>Time is set to Auto and I have run "Sync with GPS"

I have rebooted the watch.

Any suggestions?