If I execute $session.save(), it returns true, but the watch displays "Failed" even though the FIT file is generated.
This is what I'm using, on the assumption the stop and save functions are asynchronous:
if ($.session.stop()){
System.println(" Stop Session - SUCCESS");
if($.session.save()){
System.println(" SAVE Session - SUCCESS");
$.session = null;
}
}The app logs:
Stop Session - SUCCESS SAVE Session - SUCCESS
but the watch displays Failed:

But the FIT file is written.
However, the file is not synced to the phone until the app terminates, so I suspect the "Failed" message refers to the sync failing, not the writing of the FIT file.
Running on Fenix5 CIQ 3.0.1, iPhone6 GCM 4.24
[UPDATE]
When running the same code on a VA-HR, it reports no error, but when attempting to sync with the iPhone5 with the app still running, GCM reports
"Your device seems to be busy, and your sync request timed out. Try again later."
Supports the theory that the F5 is reporting its inability to sync with GCM while the app is running. Looks like a bug to me.