Array settings (System 5, SDK 4.1.1) still cannot be saved from Garmin Connect Mobile, 3+ years after the first acknowledged reports. I hit this with a store-released beta data field, so it is easy for you to reproduce with a production app.
App: FuelSteps Beta (data field), app id e8b9d56d-1582-46b3-9a67-f9860f4c8368, built with SDK 9.2.0, minApiLevel 5.0.0. settings.xml has 5 groups of plain settings plus 5 top-level array settings (growable list with float/number/string/boolean sub-settings), validated against resources.xsd.
Device: Forerunner 965, firmware [29.05] · Garmin Connect Mobile [5.29] on Android (Samsung), Garmin Connect IQ [2.49] on Android (Samsung)
Steps:
- Install the data field from the store, open its settings in Garmin Connect Mobile.
- Add an item to an array setting ("+ Add Item"), fill the sub-settings, also change a plain string setting (schedule name) in a group.
- Tap Save, reopen the settings.
Expected: values persisted.
Actual: everything is back to defaults — the array item is gone AND the plain settings (name, list, booleans) are not saved either. After the first failed save, no setting of the app can be saved at all until the app is uninstalled and reinstalled. Application.Properties on the watch never sees the values.
Repro snippet (exact settings.xml from the released beta; one of five identical slot pairs — slot 1 shown):
---
<!-- properties.xml -->
<property id="s1Steps" type="array"/>
<!-- settings.xml -->
<group id="slot1" title="@Strings.Slot1">
<setting propertyKey="@Properties.s1Name" title="@Strings.SetName">
<settingConfig type="alphaNumeric" maxLength="16"/>
</setting>
<setting propertyKey="@Properties.s1Unit" title="@Strings.SetUnit">
<settingConfig type="list">
<listEntry value="0">@Strings.UnitMin</listEntry>
<listEntry value="1">@Strings.UnitKm</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.s1Vibe" title="@Strings.SetVibe">
<settingConfig type="boolean"/>
</setting>
<setting propertyKey="@Properties.s1Tone" title="@Strings.SetTone">
<settingConfig type="boolean"/>
</setting>
</group>
<!-- top-level: an array setting inside a group crashes the compiler ("parent is null") — also worth fixing -->
<setting propertyKey="@Properties.s1Steps" title="@Strings.Steps1" maxLength="15">
<setting title="@Strings.StepSize" type="float">
<settingConfig id="size" type="numeric" min="0" max="600" required="true"/>
</setting>
<setting title="@Strings.StepRepeat" type="number">
<settingConfig id="repeat" type="numeric" min="1" max="30"/>
</setting>
<setting title="@Strings.StepText" type="string">
<settingConfig id="text" type="alphaNumeric" maxLength="20"/>
</setting>
<setting title="@Strings.StepCarbs" type="number">
<settingConfig id="carbs" type="numeric" min="0" max="200"/>
</setting>
<setting title="@Strings.StepCaf" type="boolean">
<settingConfig id="caf" type="boolean"/>
</setting>
<defaults>
<entry>
<default id="size">30</default>
<default id="repeat">6</default>
<default id="text">Gel</default>
<default id="carbs">25</default>
<default id="caf">false</default>
</entry>
</defaults>
</setting>
---
Also note: the <defaults> block never reaches Application.Properties on the watch (value stays null), and array defaults only pre-fill the phone form.
This makes a great user experience impossible. Array settings are the only UI Connect IQ offers for structured, repeating data (a fueling schedule, interval rules, alarm lists — the core of many apps). Because they don't save, I had to replace them with flat text fields where users type a mini-syntax like 3x5 Gel 25 caf into a string setting — a clear step backwards that no modern app should need. On top of the save failure, the array editor itself undermines trust: saving fails silently (no error, the user blames the app, not Garmin Connect), list items render as raw "value + label" lines, and parts of the UI ("+ Add Item", the boolean "on") stay English in a localized app. Until this is fixed, array settings are effectively unusable in production.
This matches the long-standing acknowledged reports ("Bug: Elements in Settings-Array not editable → server error", "Confusion and bugs in Array Settings"). I'm happy to provide the settings.xml, a minimal test app, or anything else that helps.