What's happening to watchfaces that calculate "active calories"?

I have been using watchfaces that calculated true "active calories" (AC) for many years. All of a sudden, they either don't show it anymore (show 0) or show IQ! instead of any data. More recent WFs seem to use a native AC which is strictly incorrect since it includes a resting calories component added to it.

What is going on? Surely, the most important number for weight loss, for example, is AC, yet this has always been a source of confusion. Those that chose to show it did the work to calculate it correctly, but now it seems Garmin have made changes that prevent that.

  • Have you recently changed watches or reset your watch to factory defaults? Do you currently have your age, weight and height set up in your watch’s user profile? Devs are probably using all three of those things to calculate active calories (given that the API only exposes calories):

    https://forums.garmin.com/developer/connect-iq/f/discussion/208338/active-calories/979991#979991

    Given that some of these watchfaces are crashing, it’s likely that they aren’t bothering to check whether any of the age, weight or height values are missing before trying to use the values. Those that show 0 are probably checking for missing values, and choosing to display 0 by default in that case (personally I would display something like “—“).

    Another possibility (if none of those values are missing) is that there’s a new bug where the Connect IQ API acts as though one or more of those values is missing, even when they’re available, but nobody has mentioned anything like that recently afaik.

  • Thanks for the link. I remember reading that whole discussion many years ago.

    No, my user data is complete. The watchface (WF) I was using for 3 plus year suddently gave "IQ!" about 4 days ago. I found that by not dispaying the "active caloiries" (AC) data field the display came back. Anothe WF I used with AC just showed a zero.

    Garmin have probably changed something.

  • The watchface (WF) I was using for 3 plus year suddently gave "IQ!" about 4 days ago.

    This happens if the version of the app does not match the installed FW.

    You have obviously installed a third-party watchface.

    Contact the developer of the watchface. He must publish regular updates so that the watchface continues to work.

    The developer should recompile his app with the latest SDK

  • The watchface (WF) I was using for 3 plus year suddently gave "IQ!"

    What is the name of the watchface?

  • TL;DR if a device update breaks CIQ apps, it should be the exception to the rule, not the rule.

    The watchface (WF) I was using for 3 plus year suddently gave "IQ!" about 4 days ago.

    This happens if the version of the app does not match the installed FW.

    This is just not true in general.

    It is not the case the Garmin would wilfully and regularly make backwards-incompatible changes in Connect IQ in such a way that developers must vigilantly recompile their apps with newer SDKs to avoid breakage.

    No one would design an SDK with that kind of behavior, not even Garmin, because if an app breaks after a device receives new firmware, both users and developers will blame Garmin (and rightfully so). Even if devs wanted to recompile their apps with every new SDK, do you think it's possible for all the developers of every app in the CIQ store to update their apps the instant a new SDK is released? There will be some lag time in some cases, in which apps will be crashing left and right (assuming that you have to recompile your apps in order to avoid crashes, as you say.) This is to say nothing of unmaintained apps, where the user may still wish to keep using an app even though the maintainer has lost interest or got hit by a bus.

    On the contrary, Garmin has tried to deprecate certain API calls over the years (they tell devs to stop using the calls so they can get rid of them on newer devices), but since devs refuse to stop using the calls, the Connect IQ team just throws up their hands and leaves the deprecated calls alone. The CIQ team has actually publicly communicated their frustration with developers on this point.

    This is a clear example where Garmin has *avoided* breaking Connect IQ apps with a change to device firmware, even when it's a change that they've wanted to make for years, because devs refuse to go along with it.

    If Garmin has made a change that breaks certain apps in this case, it's either unintentional or unavoidable, not a case where "this kind of thing happens all the time".

    Contact the developer of the watchface. He must publish regular updates so that the watchface continues to work.

    The developer should recompile his app with the latest SDK

    I agree that the developer should be contacted, but it's not the case the CIQ developers can or should be expected to constantly publish updates so their apps "continue to work".

    The main reasons to rebuild apps with the latest SDK are:

    - to support newer devices that require the latest SDK

    - to take advantage of bug fixes that are present in the latest SDK

    - to take advantage of new language features in the latest SDK

    - to take advantage of new device features that are only exposed via the latest SDK

    It seems that Garmin probably has changed something here and it has either exposed a bug or unwanted behavior in some apps, or a bug has been introduced on Garmin's end. 

    "IQ!" means that an app has crashed, and in most cases it means there's a bug in the app (in some rare cases, it's actually a bug in the device firmware.)

  • @bluefish. Alfa-zulu is one (shows IQ! for AC), megatime is another (shows 0). These are old apps but AZ worked until a few days ago. I have contacted the delveloper

    I have tried recent apps like Victus and it displays AC but it is nonsense -- no idea of what it is displaying.

  • What watch do you have? And has it received a firmware update recently?

  • What firmware do you have? Is it 8.30 which was released about a month ago?