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)

  • "The va3 FW is way past EOL so you probably won't see any more updates to it so a the chance of a fix is pretty much nil., So what needs to be done is find a work-around."

    1) This isn't my bug report, I'm just trying to explain to you what the bug report is about since you didn't bother to read or understand it

    2) I never said that I think the bug report is valid

    --

    Anyway:

    - I just wrote a simple data field which returns (ActivityMonitor.Info has :pushes).toString() in compute()

    - I tested with vivoactive3 in the sim, and it returns "false" as you would expect. (It's also easy to see that this will happen simply by searching for "pushes" in ConnectIQ/Devices/**.debug.xml, and noting that the symbol only exists in supported devices that match what's in the API docs: venu3, venue3s, vivoactive5, and vivoactive6

    - I tested with a real vivoactive3 (WW) that I updated to the latest firmware (8.2.0, CIQ 3.1.9). It returns "false" as you would expect

    As a sanity check, I also ran it on a simulated vivoactive5, and as expected, it returns "true".

    So whatever is going on here, I don't think a real vivoactive3 is actually returning true for ActivityMonitor.Info has :pushes.

    I thought that was very unlikely even before I tried it, because why would Garmin accidentally backport a new API to an old device?

  • "And I got an Invalid Value exception in ERA:"

    Nitpick, it's an Invalid Value error, not exception. InvalidValueException actually exists in CIQ, but it's not what you're seeing here. The distinction is significant because exceptions are catchable, but errors are not.

  • The va3 FW is way past EOL so you probably won't see any more updates to it so a the chance of a fix is pretty much nil., So what needs to be done is find a work-around.

  • "On a device with wheelchair mode pushes are only counted in wheelchair mode and steps aren't counted in wheelchair mode.  One way to see which is being used is by checking stepGoal and pushGoal

    The available native activities change based on if the device is in wheelchair mode.  Wheel mode will result in "pushes walking speed" and "pushes running speed" instead of just walking and running."

    You are completely missing the point of the bug report, which - to be fair - was not explicitly spelled out.

    flocsy is saying that he thinks ActivityMonitor.Info has :pushes is true on vivoactive3, yet this is not supposed to be true based on the CIQ level of vivoactive 3 (3.x) and the supported devices list in the CIQ API documentation

    To be 100% clear, vivoactive 3 is not supposed to support wheelchair mode

    developer.garmin.com/.../Info.html

    https://support.garmin.com/en-CA/?faq=N2kd8s5yav8h7ZSPX0Icp8

  • On a device with wheelchair mode pushes are only counted in wheelchair mode and steps aren't counted in wheelchair mode.  One way to see which is being used is by checking stepGoal and pushGoal

    The available native activities change based on if the device is in wheelchair mode.  Wheel mode will result in "pushes walking speed" and "pushes running speed" instead of just walking and running.