Acknowledged
over 1 year ago

[BUG] Connect IQ apps are allowing incompatible apps to be installed

See this thread for details: https://forums.garmin.com/developer/connect-iq/f/discussion/357669/complications-updatecomplication-crashes/1721706#1721706

The only reason I can think of that calls to the Complications API would crash is if the installation apps like Connect IQ and possible Garmin Express are allowing apps that call this API to be installed on older FW.

The summary of that thread is that I saw 100's of crashes on devices with old FW that should have not had my app installed.  For example, many crashes from:

fēnix® 7X / tactix® 7 / quatix® 7X Solar / EnduroTm 2: 9.37
epixTm (Gen 2) / quatix® 7 Sapphire: 8.45
epixTm (Gen 2) / quatix® 7 Sapphire: 7.48,

Yet, the manifest in the submitted (in October and built with SDK 4.2.3) IQ file has the following (specifying min fw of 14.31):

<iq:product complications="006-B3944-00/006-B3944-00-complications.json" connectIqVersion="4.2.3" filename="006-B3944-00/TidesWavesWindPro.prg" id="epix2" minFirmwareVersion="1431"

  • It's pretty weird getting these crashes on devices with such old FW.  How did the app get installed?!

    One (unlikely) possibility is that those users downgraded after installing the app. Kinda doubtful since it's hard (or, in some cases, impossible) to downgrade and I can't imagine anyone downgrading to such old firmware (compared to what they previously had).

  • To clarify, I'm thinking that the min FW specified by the IQ manifest for apps built with 4.2.3 or earlier may have been wrong.

    But in the OP you wrote:

    Yet, the manifest in the submitted (in October and built with SDK 4.2.3) IQ file has the following (specifying min fw of 14.31):

    <iq:product complications="006-B3944-00/006-B3944-00-complications.json" connectIqVersion="4.2.3" filename="006-B3944-00/TidesWavesWindPro.prg" id="epix2" minFirmwareVersion="1431"

    Not to state the obvious, but 1431 is higher than 7.48 and 8.45.

  • To clarify, I'm thinking that the min FW specified by the IQ manifest for apps built with 4.2.3 or earlier may have been wrong.

    Either way, thanks for looking into it.  It's pretty weird getting these crashes on devices with such old FW.  How did the app get installed?!

  • I can have someone do some checking, but I'm very confident that the store won't install apps to devices that have firmware below the minimum required for an app. The minimum firmware is set in the device configuration, so is independent of the SDK (though the connect IQ version can also narrow down which devices the compiler builds for depending on the SDK version you set in the project).

  • Yes, they were happening every day until I updated the app a few days ago.  Unfortunately, we don't get bug reports of older versions of an app so I cannot see the crashes on devices that have not been updated so I'd expect them to still be happening.  Clearly quite a few people don't update the FW on their devices.

    It is happening on a version I uploaded in October, built using 4.2.3.

    If you look at the linked thread, it seems seems odd that the min firmware version changed between 4.2.3 and 4.2.4.  Not sure if that is relevant but it might be a clue.  Maybe the min fw in 4.2.3 was too early for complications.

    Maybe this was a one time issue with 4.2.3.  My goal here is to let you know it is happening and is a bad user experience that reflects badly on our apps.  Unfortunately, those customers that get these crashes have moved on and there is no way to get them back Disappointed