Device / Firmware: Edge 1050, system_version 32.20 (PRODUCTION). Not present on firmware 31.33 with identical app code.
Root cause: Any Connect IQ data field app whose App.AppBase subclass overrides onStop(state) — even as a no-op empty function — crashes the device when that field is swapped out via the on-device field editor. Removing the override (relying on the inherited default) eliminates the crash, with no other code change.
Repro steps (using Garmin's provided SimpleDataField SDK sample, unmodified except adding edge1050 to the product list):
- Install
samples/SimpleDataField(as shipped in the Connect IQ SDK) on an Edge 1050 running 32.20. - Place it on an active page; it renders normally and indefinitely — the bug is not in normal operation.
- Long-press the field to enter edit mode.
- Short-press to open "change field" (which would load the list of replacement fields).
- Device reboots before the list renders. Crash log shows
Error type ( 8 ) err( 8 ), all registers zeroed, no ram dump captured — a watchdog-class reset, not a caught exception.
Confirmed fix: removing SimpleDataFieldApp.mc's onStop(state) override entirely (letting it fall through to the inherited AppBase no-op) makes the exact same repro stop crashing, with zero other changes.
Scope of impact: overriding onStart/onStop as empty stubs is extremely common — it's the default output of the Eclipse ADT project template, and 38 of the 43 sample apps shipped in SDK 9.2.0 itself do this, including SimpleDataField. This almost certainly affects a large fraction of installed Connect IQ data fields on Edge 1050 running 32.20, not just one specific app.
Crash signature (device's Uploads/Error/err_log.txt):
"backtrace": " - Error type ( 8 ) err( 8 )",
"error_cause": "8",
"system_version": "32.20"
Workaround for other developers hitting this: remove any empty/no-op onStart/onStop overrides from your AppBase subclass.