My app activities apparently crash the entire watch when the "Training" glance is accessed on Fenix 8

My app records activities, with a few custom fields. It works perfectly fine on my FR965, and I can check the activities recorded by my app later through the "History" glance.

However, a Fenix 8 user has told me that their watch has a "Training" glance (that doesn't exist on my FR965 - I have no idea what that glance does), and if there is any activity from my app on the watch, the entire watch just crashes and reboots. The issue stops if the activity log is removed by plugging the watch to a PC and deleting the relevant file. It sounds like a Garmin side bug, but has anyone gotten such a report?

I'm thinking of adding a "simple activity log" setting to the app that would remove any custom recorded fields, not sure what else I could do.

  • OK it seems to be due to the "Last Activity" glance. It crashes the watch if the last activity is of type "Flight"....

  • Is "flight" a valid sport on that f8?  Is there a native activity for it?

  • I'm not sure whether there is or not - but it is part of the sport types available in the Sport2 enum (that is now shown as deprecated as are all activity type enums, although it doesn't really say what you should be using instead). For now my workaround has been to switch to "Hang gliding" activity type, that one doesn't crash the watch with the Last Activity glance.

    Now that I know what the exact issue is, I can also reproduce on the FR965 - although tbh, I adhere to the Linus Torvalds philosophy, applied to Garmin, there should never be a recorded activity (or anything the app does) that can crash the entire watch :)

  • There are limits on some sports based on the specific Garmin for even native activities.  Diving is the one that comes to mind.

    Your app could also be rejected based on some rules.  See https://forums.garmin.com/developer/connect-iq/w/wiki/10/app-approval-exceptions

  • Yep - I have the disclaimer as per the instructions (and more), answered the questions of the approver of the app, it's not for extreme sports, it has the disclaimer, and it is approved Slight smile

  • but it is part of the sport types available in the Sport2 enum (that is now shown as deprecated as are all activity type enums, although it doesn't really say what you should be using instead).

    This deprecation thing has come up before - I think the idea is that you're supposed to use the Activity.Sport and SubSport enums, available since API level 3.2.0:

    https://developer.garmin.com/connect-iq/api-docs/Toybox/Activity.html

    - Activity.Sport is a superset of the deprecated ActivityRecording.Sport1 and Sport2 enums

    - Activity.SubSport is a superset of the deprecated ActivityRecording.SubSport enum

    - none of the common values have changed (e.g. the value for "SPORT_FLYING" is obviously the same in Activity.Sport and ActivityRecording.Sport2)

    This obviously didn't help, but in the docs, each of the deprecated enums does have a tiny link to the new enum:

  • Ooh nice, thank you! I'll make sure to use that!

  • Since the 965 and Fenix 8 beta forums are open again, you could try filing a bug report in each of those places.

    My rationale:

    - it's the easiest way to file a product bug report

    - if it exists in production, it likely exists in the beta (since nobody knows about this problem), unless you have specific knowledge otherwise

    - a lot of the currently supported watches in the gen before Fenix 8 are using a common codebase (e.g. fr955, fr965, fenix 7, etc.), so if the bug gets fixed in one watch, hopefully it gets fixed in all of the other watches with common code

    - Fenix 8 apparently has a different codebase (although obviously some of the same bugs), so it wouldn't hurt to also file a bug report there

    I guess it would be best if you (and the fenix 8 user) were actually on the beta firmware though.