Acknowledged
CIQQA-3255

bug: vivoactive3 returns true for ActivityMonitor.Info has :pushes

I have the following code in one of my menus:

        if (ActivityMonitor.Info has :pushes) {
            addItem(settings, Rez.Strings.activityTypeWheelchairPushWalk, 65000);
            addItem(settings, Rez.Strings.activityTypeIndoorWheelchairPushWalk, 65086);
        }

And I got an Invalid Value exception in ERA:

Error Name: Invalid Value
Occurrences: 1
First Occurrence: 2025-05-26
Last Occurrence: 2025-05-26
Devices:
vívoactive® 3: 8.20
App Versions: 0.9.6
Languages: ces
Backtrace:
SessionDebug.createSession:5
SessionDebug.session65086:73
SessionDebug.createSessionDebug:94
HikerAppView.createSession:66
SettingsMenu2.onSelect:220

However this can only happen if ActivityMonitor.Info has :pushes is true for vivoactive3.

In the simulator (SDK 8.1.1) I can't reproduce the problem neither with nor without --disable-api-has-check-removal 

I am not 100% but 99% sure that in this build I used --disable-api-has-check-removal so if I understand correctly then this is a bug in the vivoactive firmware. Or in the simulator, that returns false, but then why does va3 throw the Invalid Value exception when calling: 

ActivityRecording.createSession({:name => "name", :sport => 65 as Activity.Sport, :subSport => 86 as Activity.SubSport});
(which BTW doesn't fail in the simulator)

  • > then at least make the simulator similar to it

    Like I said, based on my testing, a real vivoactive3 with 8.20 actually returns false for ActivityMonitor.Info has :pushes, at least when I test with a simple data field which returns that value in compute (after conversion to string). I built with SDK 8.1.1 and tried with both --disable-api-has-check-removal specified and unspecified.

    However, I can reproduce what's happening in your bug report. On my real vivoactive3:

    - I installed Hiker App

    - Opened the app and long-pressed on the screen for the settings menu

    - Selected Activity Type

    - Scrolled through the list and saw that Wheelchair Push Walk and Indoor Wheelchair Push Walk are present

    - If I select either of those items, the app crashes

    Do you want to create a debug version of your app with logging / special behaviour to help track this bug down?

    If you post it in this thread, I'd be happy to sideload it and try it out. (You probably have to zip the PRG file for the forum to accept it.)

  • > Lovely, the best thing is to name similarily...

    Yeah Garmin is great at either:

    - using the same name for 2 different concepts: e.g. CIQ "app" (the general term which includes watch faces, data fields, etc.) versus "app" (as in "device app" / "watch app")

    - using different names for the same concept: e.g. "SatIQ" in marketing materials/device manual vs "Auto Select" in UI

    To be fair, in this case it's actually the same concept: an invalid value was supplied as an argument to an API function. It's just that one of them is an uncatchable error and one is an exception.

  • Lovely, the best thing is to name similarily...

  • then at least make the simulator similar to it

  • Btw vivoactive3 software 8.2.0 (the final update) was released in November 2022.

    Connect IQ 6.3.0 (first SDK to include ActivityMonitor.Info.pushes) was released in August 2023.