The meaning of IQ! vs IQ... logo after crash

   can you explain?

  • I know that Brandon.ConnectIQ said in the other thread that "IQ..." is actually not a crash and does not produce a crash log.

    For what it's worth, 2 years ago somebody asked the same question and I guessed that IQ... is just another way to indicate a crash (obviously contradicting what Brandon.ConnectIQ said).

    At the time I created a data field which intentionally crashes, sideloaded it to my FR955, and sure enough, I got the IQ... logo.

     Data field shows IQ and 3 dots  

    I just tried it again, with a data field that intentionally crashes with an array out of bounds error. I sideloaded it to my FR955, and yup, got the IQ... logo. (Same one that I posted in the thread above and the same one you posted in the other thread.) I also do get a crash log complete with stack trace (in ciq_log.yml), exactly as expected.

    Obv I'm not saying he's wrong, but that's just what I see.

  • But there must be some other difference besides the visual "!" vs "...", otherwise Brandon wouldn't ask which one it was. Also it's strange that they somehow decide which case it is and whether they do send the crash log and display IQ! or they don't send the crash log and display IQ... This is

  • As I said I'm not trying to contradict him, only describing what I see with my own 2 eyes.

    When I create a CIQ data field with a deliberate crash and sideload it to my FR955, I see "IQ..." along with the expected crash log. Same as what happened in 2023, the last time I tried the same thing in response to a similar question about what "IQ..." means.

    Simple as.

    I haven't seen "IQ!" on my FR955 in recent memory, so I am unable to comment on any possible differences between the 2 situations from personal experience. I'm not sure if I've *ever* seen "IQ!" on my FR955. I think I have seen it on older devices tho.

    If you prefer, I could just delete my previous comment and we can both pretend it never happened.

    Or you could just do the same test for yourself and see what happens. If you make your app deliberately crash, whether you see "IQ!" or "IQ...", you will have new information which you did not have before.

    I will speculate that maybe the difference lies in *when* the app crashes (i.e. on startup vs some point after startup). I'm just guessing tho. Maybe I'll look into at some point if I'm bored.

    In this case, the deliberate crash was at startup (i.e. in the app class constructor, not in onUpdate or compute).

    Perhaps if I instead introduce a crash in compute(), I'll get the other icon.

    Also it's strange that they somehow decide which case it is and whether they do send the crash log and display IQ! or they don't send the crash log and display IQ... 

    My interpretation of Brandon.ConnectIQ's statement was that "IQ!" signifies a regular crash and "IQ..." signifies something else (which he explicitly said is *not* a crash), not that they're both crashes but Garmin just decides to display a different logo and suppress the crash log for fun, in the 2nd case.

    To be clear, in the 2nd case, the implication is that there's no crash log to be had, not that the device decides not to save the crash log.

  • I tried 2 more tests:

    B) instead of crashing on startup, crash in compute (after timer is started). the type of crash is still array out of bounds

    C) same as B), but I throw an exception (and obviously don't catch it)

    Same result as before:

    White check mark IQ...

    White check mark crash log

    If I ever see "IQ!" on my FR955, I'll let you know.