Acknowledged
CIQQA-4848

Instinct 3 Solar 45mm: Notifications.showNotification from a background service shows nothing (works in foreground)

Environment
- Device: Instinct 3 Solar 45mm, firmware 15.19
- Connect IQ SDK: 9.3.0 (2026-10-20), device files updated 2026-11-04
- App type: watch-app, permissions Background + Notifications

Summary
On a physical Instinct 3 Solar 45mm, Notifications.showNotification() works when called from the foreground app but shows nothing
when called from a background service (onTemporalEvent), even though the background event demonstrably runs.
Background.requestApplicationWake() shows its prompt, but with no vibration or tone. As a result, a Connect IQ app has no way to
alert the user at a scheduled time while the app is closed on this device (Attention is unavailable in the background).

Steps to reproduce (minimal app attached: source + NotifyTest.prg built with SDK 9.3.0)
1. Open NotifyTest and press SELECT. The app calls showNotification() from the foreground.
Result: the notification shows and the watch vibrates. Works.
2. Press DOWN. This registers a temporal event 5 minutes ahead. Exit to the watch face and wait. In onTemporalEvent the service
writes a timestamp to Storage, then calls the same showNotification().
Result: nothing is shown, no vibration. On reopening the app, the line "bg: <time> notify" shows that the background event ran
at the expected time.
3. Press UP. This registers a temporal event 5 minutes ahead that calls Background.requestApplicationWake(). Exit to the watch face
and wait.
Result: the "launch app?" prompt appears, but with no vibration and no tone, so it goes unnoticed unless the user is looking at
the watch.

Simulator
- The instinct3solar45mm profile (also instinct3amoled45mm) in SDK 9.3.0 has no "notification" layout in simulator.json; fenix847mm
has one.
- Any showNotification() call on the instinct3solar45mm profile crashes simulator.exe (minidump written to
%TEMP%\com.garmin.connectiq\GARMIN\Debug\ERRLOG.*.dmp). The same app works on fenix847mm.

Expected
A notification posted from a background service is shown on the device and respects the user's vibration/tone settings, as it does
from the foreground and on other API 5.1+ devices. Failing that, requestApplicationWake should vibrate/beep per the user's alert
settings.

Why it matters
Reminder, medication, interval and timer apps need to alert the user at a set time while the app is closed. On the Instinct 3 this
is currently impossible: background code can't use Attention, background notifications don't appear, and the wake prompt is silent.
NotifyTest-repro.zip

  • Thanks. I already do that: the service calls Background.exit(true) and onBackgroundData() shows an in-app alert with Attention.vibrate(). That works, but only while the app is in the foreground. Per the docs, if the app isn't active, the data is held until the next launch, so it can't alert the user at the scheduled time.

    The gap this report is about is the app-closed case. On the Instinct 3 there's currently no path from a background service to an alert the user notices:

    - showNotification() from the background: not shown (it is shown from the foreground on the same device)

    - requestApplicationWake(): prompt appears but with no vibration or tone

    - Attention: not available in background

    Notifications.showNotification is documented as "Notify the user of an event from the background" (Core Topics > Notifications), so I'd expect it to work here. If it's intentionally unsupported on this device, it would help to have that documented, and ideally requestApplicationWake should respect the user's vibration/tone settings.

  • This has never been consistent on a number of devices.  Use Backround.exit() to pass back info and then handle it in onBackgroundData() in the main app.