Garmin Connect Mobile (iOS) shows FIT contributor SESSION fields that are declared with displayInActivitySummary="false"; Connect Web hides them

FIT contributor developer fields of message type SESSION that are declared with displayInActivitySummary="false" do not appear in Garmin Connect Web, but do appear in Garmin Connect Mobile (iOS) in the "Connect IQ" section of the Statistics tab. RECORD fields declared with displayInChart="false" do not appear in the Charts tab on Mobile, so only the SESSION fields are affected.

Environment

  • Device: fenix 6 Pro, Connect IQ app (private store beta), min API 3.4.0
  • Connect IQ SDK 9.2.0
  • Garmin Connect Mobile 5.30.1.1 (iOS)
  • Garmin Connect Web (browser), same activity

Declaration (resources/fitcontributions/fitcontributions.xml, excerpt)

<fitField id="60" displayInActivitySummary="false" displayInChart="false" displayInActivityLaps="false"
sortOrder="200" precision="0" dataLabel="@Strings.WdFitInternLabel" unitLabel="@Strings.WdFitEmptyText" />
<fitField id="66" displayInActivitySummary="true" displayInChart="false" displayInActivityLaps="false"
sortOrder="0" precision="0" dataLabel="@Strings.WdFitLabel0" unitLabel="@Strings.WdFitSeconds" />
Six fields (ids 66 to 71) are meant to be visible, six SESSION fields (ids 60 to 65) are internal and hidden. The compiled package (fit_contributions.json inside the .iq) contains "activity-visible": false for ids 60 to 65, so the declaration reaches the package.

Expected Connect Mobile shows only the six fields with activity-visible: true, as Connect Web does.

Actual Connect Mobile shows all twelve SESSION fields: the six visible ones plus the six declared hidden. For array-typed hidden fields only the first element is shown. This holds for every activity recorded with any version of the app since the first upload, so it is not a stale-cache effect of an earlier declaration.

What I tried (none hides the rows on Mobile)

  • Omitting the display… attributes (the compiler writes the same false values into the package).
  • An empty dataLabel and an empty unitLabel: Mobile then shows a row with no name and the bare number, which is worse than a named row.
  • A neutral label with an empty unit: the row is shown with that label and the bare number.

Questions

  1. Is Connect Mobile expected to honour displayInActivitySummary="false" for SESSION fields?
  2. If yes, is there a known issue or a planned fix? If no, is there any supported way to keep internal SESSION fields out of the Mobile summary?

Notes

  • The same activity in Connect Web shows exactly the six visible fields.
  • Android was not tested.
  • I can supply the FIT file's field definitions or a minimal sample project if useful (no personal data).