<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://forums.garmin.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Connect IQ</title><link>https://forums.garmin.com/developer/connect-iq/</link><description>The central hub for the Connect IQ Developer Community.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><item><title>Forum Post: RE: Fenix 9 Sim: Position.hasConfigurationSupport returns false</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/442894/fenix-9-sim-position-hasconfigurationsupport-returns-false/2074537</link><pubDate>Mon, 26 Oct 2026 15:44:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:4b8d8531-695e-4d64-b97c-d04fcf210227</guid><dc:creator>a1234.garmin</dc:creator><description>Yes, definitely.</description></item><item><title>Forum Post: RE: How do apps get into the Connect IQ store’s home page collections?</title><link>https://forums.garmin.com/developer/connect-iq/f/connect-iq-web-store/446898/how-do-apps-get-into-the-connect-iq-store-s-home-page-collections/2074527</link><pubDate>Mon, 26 Oct 2026 15:17:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:079c5230-37aa-4184-91ca-5a2f27cb874b</guid><dc:creator>jim_m_58</dc:creator><description>I&amp;#39;ve been using the app store with my own apps for 11 years. Even my apps with 100k downloads move around. As more apps and more devs have started over that time, things might not be as clear as they once were</description></item><item><title>Forum Post: RE: How do apps get into the Connect IQ store’s home page collections?</title><link>https://forums.garmin.com/developer/connect-iq/f/connect-iq-web-store/446898/how-do-apps-get-into-the-connect-iq-store-s-home-page-collections/2074524</link><pubDate>Mon, 26 Oct 2026 15:10:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0fd1c784-55bc-4290-b32a-16a30df97241</guid><dc:creator>jpcams</dc:creator><description>This reads like there&amp;#39;s no method to the madness :) Is that how I should perceive it?</description></item><item><title>Forum Post: RE: Watchface: Glance</title><link>https://forums.garmin.com/developer/connect-iq/f/showcase/279043/watchface-glance/2074495</link><pubDate>Mon, 26 Oct 2026 14:10:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0df534b1-8239-4c75-9a7f-f3e4072b4966</guid><dc:creator>MobileDriveway</dc:creator><description>[quote userid=&amp;quot;2526854&amp;quot; url=&amp;quot;~/developer/connect-iq/f/showcase/279043/watchface-glance/2074376&amp;quot;]When I choose the Alarm count field on Big Easy and push and hold the alarm count field, suggested exercise is shown on the screen and not alarms. [/quote] It shows Calendar ( suggested exercise is often the only thing there). Garmin doesn&amp;#39;t have Alarm complication, so it is impossible to launch it - calendar is the closest thing to time available.</description></item><item><title>Forum Post: RE: How do apps get into the Connect IQ store’s home page collections?</title><link>https://forums.garmin.com/developer/connect-iq/f/connect-iq-web-store/446898/how-do-apps-get-into-the-connect-iq-store-s-home-page-collections/2074493</link><pubDate>Mon, 26 Oct 2026 14:06:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:3a47f108-ea5e-4f28-8a83-b37cb4bac56f</guid><dc:creator>jim_m_58</dc:creator><description>What you specify on the dashboard isn&amp;#39;t a 1 to 1 with categories in the store Different ones can be in the same category for example. Where an app is shown within a category depends on different things, like rating, downloads, views. There is no way to &amp;quot;nominate&amp;quot; an app, because everyone would be nominating their own. Apps aren&amp;#39;t in a consistent order can change often, where one day it&amp;#39;s near the top of a category and the next day further down for example. When searching, you&amp;#39;ll on see maybe the first 100-150 apps that fit the search, when there could be many times that that fit.</description></item><item><title>Forum Post: How do apps get into the Connect IQ store’s home page collections?</title><link>https://forums.garmin.com/developer/connect-iq/f/connect-iq-web-store/446898/how-do-apps-get-into-the-connect-iq-store-s-home-page-collections</link><pubDate>Mon, 26 Oct 2026 12:45:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0b395936-35e9-4956-82c2-0713738cba72</guid><dc:creator>jpcams</dc:creator><description>I run a strength training watch app on the Connect IQ store. Its category is set to Strength Training in the developer portal, which has no subcategories. On the Connect IQ phone app’s Home tab, I see collections like “Performance Metrics” and “Training Metrics”. I’d love to understand how those work: Are the Home collections picked by the Garmin team, or are they built from categories or some kind of tags? Can a developer nominate an app for one, or ask to be considered? Where does the Strength Training category show up to someone browsing? I can’t find it from Home or Search on the phone app. Does anything else affect where an app appears, like downloads, ratings, recent updates or device coverage? Our listing: https://apps.garmin.com/apps/b36a2543-11b8-460d-b9a9-53ddd25a00d8 Thanks for any pointers. Happy to share what we learn with anyone else wondering the same thing.</description></item><item><title>Forum Post: Isohypse by Proficode: real contour lines of 10 famous mountains, analog and digital</title><link>https://forums.garmin.com/developer/connect-iq/f/showcase/446895/isohypse-by-proficode-real-contour-lines-of-10-famous-mountains-analog-and-digital</link><pubDate>Mon, 26 Oct 2026 12:04:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:76dd7204-be1b-470c-ab8b-b67d74ed5b08</guid><dc:creator>Martin Kopecky</dc:creator><description>Hi everyone, I&amp;#39;m Martin Kopecky, a hiker from Slovakia, and I&amp;#39;d like to show you Isohypse, a family of four topo watch faces I made. The dial shows the real contour lines of a famous mountain, drawn from open elevation data with the summit in the middle: Krivan, Lomnica Peak and Gerlach Peak in the High Tatras, the Matterhorn, Mont Blanc, the Eiger, Mount Fuji, Kilimanjaro, Mount Everest and Denali. Isohypse Analog Lite (free) and Isohypse Analog Pro: skeleton hands, four sub-dials and the steps arc Isohypse Digital Lite (free) and Isohypse Digital Pro: a large time in the middle, data in the corners; Digital Pro can turn the hands on over the digits for a hybrid look Mountain of the week: the dial can show another of the ten mountains every week by itself, in the free Lite editions too Ten color themes tuned for AMOLED and 64-color MIP displays, contour strength, larger text, meters or feet, Celsius or Fahrenheit, 21 languages Pro: every theme and mountain, data of your choice in all sub-dials and arcs, progress rings, three always-on levels and night dimming on AMOLED, and touch and hold for details on touch-screen watches Lite runs on 100 round watches with Connect IQ 3.2 or newer; Pro on the 78 of them where the store sells paid apps. Pro is a one-time purchase, no subscription. The watch faces collect no personal data. You can try every theme, mountain and option live in the browser at https://isohypse.proficode.eu (it uses the same drawing code as the watch), for example the Matterhorn: https://isohypse.proficode.eu/matterhorn Analog Lite: https://apps.garmin.com/apps/c5e5e212-4fe3-4bec-8226-0eb5bb8f6ace Analog Pro: https://apps.garmin.com/apps/5752c8f2-25df-4834-a1b0-21b65149e5ee Digital Lite: https://apps.garmin.com/apps/cba654bc-0e40-48bd-ab50-7db9c1d02da8 Digital Pro: https://apps.garmin.com/apps/651e58c5-0a89-4983-8e89-5a9a4297c9f4 Feedback is very welcome, here or at info@proficode.eu. And if a mountain you love is missing, tell me which one. Martin Elevation data: Terrain Tiles by Mapzen (AWS Open Data).</description><category domain="https://forums.garmin.com/developer/connect-iq/tags/topographic">topographic</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/hiking">hiking</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/watch%2bface">watch face</category></item><item><title>makeWebRequest: 202 with empty body and no Content-Type returns -400 on iOS, 202 on Android</title><link>https://forums.garmin.com/developer/connect-iq/i/bug-reports/makewebrequest-202-with-empty-body-and-no-content-type-returns--400-on-ios-202-on-android</link><pubDate>Mon, 26 Oct 2026 10:01:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:2ba5382e-f42a-43dc-b36d-315f6508fe78</guid><dc:creator>7916923</dc:creator><description>Context I maintain a published watch app that lets users read the status of their car and send commands to it, such as starting or stopping the climate control. It uses the car manufacturer&amp;#39;s public REST API. Each user creates their own API key with the manufacturer and enters it in the app settings, so the key lives only on their own watch and phone. The app calls the API directly through Garmin Connect; there is no server of mine in between. The API answers status requests with 200 and JSON, and every command with 202 Accepted and an empty body. Summary A POST via Communications.makeWebRequest() without :responseType gets responseCode -400 ( INVALID_HTTP_BODY_IN_NETWORK_RESPONSE ) on iOS when the server answers 202 Accepted with an empty body and no Content-Type header. The request reaches the server and is executed. The same app and endpoint give 202 through Garmin Connect on Android, and the simulator gives 202 for the same response shape. For an API that answers commands with a bare 202 (and presumably 204 ), every successful command looks like a failure on iOS, and the app cannot tell it apart from a real error. What the documentation says -400 is documented as &amp;quot;Response body data is invalid for the request type.&amp;quot; An empty 202 body is not invalid; there is just no body. For :responseType : &amp;quot;If not given, the system will use the Content-Type header from the server response to determine the format of the response body. If the Content-Type header from the response is not one of the known HTTP_RESPONSE_CONTENT_TYPE_* types, an error will occur.&amp;quot; This does not cover a response with no Content-Type and no body, and there is no HTTP_RESPONSE_CONTENT_TYPE_* value for &amp;quot;no body&amp;quot;. For responseCallback , data is &amp;quot;The content if the request was successful, or null&amp;quot;. iOS may follow a strict reading of the :responseType text, while Android and the simulator return the status with data null . Either way the platforms disagree, and there is no documented way to handle a valid 202 without a body. Expected on every platform: the real status, with data null when the body is empty. Environment Watch: fēnix 7 Pro, firmware 26.09 iOS: iPad, iPadOS 27.0.1, Garmin Connect 5.30.1 Android: Garmin Connect 5.30.1 Simulator: SDK 9.2.0, fēnix 7 App: minApiLevel 5.1.0, built with Connect IQ SDK 9.2.0 (command line monkeyc , no VS Code) How this was captured mitmproxy 12.3.0 on the same Wi-Fi network as the HTTP proxy of the iPad, with its CA installed and trusted. Only the manufacturer&amp;#39;s API host was decrypted, nothing was modified. Garmin Connect on iOS does not pin certificates for these requests, so the request and response below are exactly what Garmin Connect sent and received. With the proxy switched off on the iPad, the same command gives the same result on the watch, so the proxy is not the cause. Android cannot be captured this way (Android apps do not trust user-installed CAs). On Android I have used the app for weeks, including the current build, and commands come back as 202 there. Request (abridged) POST /api/v1/vehicles/ /air-conditioning/start HTTP/2.0 accept: */* content-type: application/json content-length: 94 x-api-key: user-agent: ConnectMobile/1 CFNetwork/3896.100.1.2.1 Darwin/27.0.0 {&amp;quot;targetTemperature&amp;quot;:{&amp;quot;value&amp;quot;:20,&amp;quot;unit&amp;quot;:&amp;quot;CELSIUS&amp;quot;},&amp;quot;airConditioningWithoutExternalPower&amp;quot;:true} Response (abridged) HTTP/2.0 202 Accepted content-length: 0 cache-control: no-cache, no-store, max-age=0, must-revalidate (no content-type header, empty body; the other headers are security and rate-limit headers) Code Communications.makeWebRequest(url, { /* JSON body */ }, { :method =&amp;gt; Communications.HTTP_REQUEST_METHOD_POST, :headers =&amp;gt; { &amp;quot;X-API-Key&amp;quot; =&amp;gt; apiKey, &amp;quot;Content-Type&amp;quot; =&amp;gt; Communications.REQUEST_CONTENT_TYPE_JSON } // :responseType deliberately omitted }, method(:onResponse)); Expected: responseCode 202 , as on Android and in the simulator. Actual on iOS: the app shows its message for -400 ( INVALID_HTTP_BODY_IN_NETWORK_RESPONSE ), the only code mapped to that message. The command was executed by the server. Observations GET requests from the same app on the same iPad work, including a 429 with application/problem+json , which comes through as 429 . Those requests set :responseType =&amp;gt; HTTP_RESPONSE_CONTENT_TYPE_JSON . In the simulator, without :responseType , every 202 shape returns 202 : empty body with no Content-Type , with application/json , with text/html , and {} with application/json . With :responseType JSON , the empty body without Content-Type returns -400 , which is why the app leaves it out on commands. On iOS that does not help. Unlike the empty-body 401 report linked below, the simulator and Android return the real status here; only iOS returns -400 . makeWebRequest is a Connect IQ API, so I&amp;#39;m reporting it here rather than under Garmin Connect Mobile; CIQQA-1662 is the same kind of iOS-only difference. Why a server-side workaround is not an option The workaround suggested in older threads is a service that never sends an empty response. For this app, that means a relay between the watch and the manufacturer&amp;#39;s API. Every user&amp;#39;s API key, and with it access to their car, would pass through a server I run. I don&amp;#39;t want to build that, and I don&amp;#39;t think users should have to trust a watch app developer with access to their car. Talking directly to the manufacturer&amp;#39;s API, with the key only on the user&amp;#39;s own watch and phone, is the safer design, and it is exactly the design that breaks on iOS. What remains is a guess in the app: on iOS, treat -400 after a command as &amp;quot;probably accepted&amp;quot; and check the vehicle state afterwards. That would work, but the app could no longer tell a successful command apart from a real error. Steps to reproduce Run the server below behind HTTPS (Connect IQ requires HTTPS on a real device). Pair a watch with an iPhone or iPad running Garmin Connect, and run an app that does the POST from the code above to that server. Check responseCode in the callback, and the server log for the incoming request. Pair the same watch with an Android phone and repeat. Seen with the real API: iOS -400 , Android 202 . I have not yet run this minimal server against iOS. It speaks HTTP/1.1, while the real API answered over HTTP/2. from http.server import BaseHTTPRequestHandler, HTTPServer class H(BaseHTTPRequestHandler): def do_POST(self): self.rfile.read(int(self.headers.get(&amp;quot;Content-Length&amp;quot;, 0))) self.send_response(202) self.send_header(&amp;quot;Content-Length&amp;quot;, &amp;quot;0&amp;quot;) self.end_headers() HTTPServer((&amp;quot;0.0.0.0&amp;quot;, 8080), H).serve_forever() Possibly related https://forums.garmin.com/developer/connect-iq/i/bug-reports/bug-report-connectiq-api-web-request-via-gcm-ios-is-not-passing-http-response-as-plain-text (CIQQA-1662: iOS returns -400 regardless of :responseType , Android works; a non-dictionary JSON body rather than an empty one) https://forums.garmin.com/developer/connect-iq/i/bug-reports/bug-makewebrequest-unable-to-handle-a-401-http-response-with-empty-response-body (a 401 with an empty body gives -400; platform not stated)</description><category domain="https://forums.garmin.com/developer/connect-iq/tags/webrequest">webrequest</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/communications">communications</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/makewebrequest">makewebrequest</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/iOS">iOS</category></item><item><title>Forum Post: RE: Fenix 9 Sim: Position.hasConfigurationSupport returns false</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/442894/fenix-9-sim-position-hasconfigurationsupport-returns-false/2074414</link><pubDate>Mon, 26 Oct 2026 00:22:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:c814ce43-bc8c-415a-8545-d44a83d00721</guid><dc:creator>jim_m_58</dc:creator><description>By the way, here&amp;#39;s the basics of how I figure things out. hasNewGPS1 is if constellations are used. hasNewGPS2 and hasNewGPS3 for configuarions, with hasNewGPS3 being the new/f9 ones. hasNewGPS1=(Position has :CONSTELLATION_GLONASS); if(Position has :hasConfigurationSupport) { hasNewGPS2=Position.hasConfigurationSupport(Position.CONFIGURATION_GPS); if(!hasNewGPS2) {hasNewGPS3=Position.hasConfigurationSupport(Position.CONFIGURATION_SAT_IQ);} }</description></item><item><title>Forum Post: RE: Fenix 9 Sim: Position.hasConfigurationSupport returns false</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/442894/fenix-9-sim-position-hasconfigurationsupport-returns-false/2074402</link><pubDate>Sun, 25 Oct 2026 22:29:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:28dfac83-9db8-49ab-a960-93bbb0f399a9</guid><dc:creator>jim_m_58</dc:creator><description>In the sim you only see the 255 configuration as valid, but all 4 are available on a real f9. Is that what you mean?</description></item><item><title>Forum Post: RE: Watchface: Glance</title><link>https://forums.garmin.com/developer/connect-iq/f/showcase/279043/watchface-glance/2074393</link><pubDate>Sun, 25 Oct 2026 21:45:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:90827eca-fe77-4a42-9850-5738ef335246</guid><dc:creator>MobileDriveway</dc:creator><description>[quote userid=&amp;quot;2411845&amp;quot; url=&amp;quot;~/developer/connect-iq/f/showcase/279043/watchface-glance/2074325&amp;quot;] I miss these features for &amp;quot;Easy round&amp;quot; watch face: -display steps in K when more than 10K -update heath rate every second [/quote] Yes, these features are missing. Rounding steps to K preserved steps icon in Glance, but EASY Round doesn&amp;#39;t have this problem. Heart rate updates in sleep mode were a problem when combined with seconds - it could have caused Garmin to restrict these updates, so I chose not to implement it in the latest app versions. [quote userid=&amp;quot;2411845&amp;quot; url=&amp;quot;~/developer/connect-iq/f/showcase/279043/watchface-glance/2074325&amp;quot;]Easy round is my second best WF - after Glance. Thanks for them![/quote] Thank you!</description></item><item><title>Forum Post: RE: Watchface: Glance</title><link>https://forums.garmin.com/developer/connect-iq/f/showcase/279043/watchface-glance/2074376</link><pubDate>Sun, 25 Oct 2026 20:56:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f5888808-5459-43b6-b6f6-f164a1c2d897</guid><dc:creator>3060297</dc:creator><description>When I choose the Alarm count field on Big Easy and push and hold the alarm count field, suggested exercise is shown on the screen and not alarms.</description></item><item><title>Forum Post: RE: Fenix 9 Sim: Position.hasConfigurationSupport returns false</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/442894/fenix-9-sim-position-hasconfigurationsupport-returns-false/2074367</link><pubDate>Sun, 25 Oct 2026 20:41:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f7b13340-c804-4085-a972-3244a4ec13ca</guid><dc:creator>a1234.garmin</dc:creator><description>9.3.0 does not have proper changes.</description></item><item><title>Complication Click-to-Launch Routing Table Deadlocks After Foreground App Experiences Power-Save Timeout (Fenix 9 Pro)</title><link>https://forums.garmin.com/developer/connect-iq/i/bug-reports/complication-click-to-launch-routing-table-deadlocks-after-foreground-app-experiences-power-save-timeout-fenix-9-pro</link><pubDate>Sun, 25 Oct 2026 20:08:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:b4f734ab-2f36-4b46-afe0-d2fc84390d7a</guid><dc:creator>6353679</dc:creator><description>There is a critical firmware-level lifecycle routing bug on the Fenix 9 Pro(may be orther models). When a Connect IQ Device App acting as a complication provider is terminated by a system-enforced Power-Save Timeout (Screen-Off Teardown) while sitting in the foreground, the underlying OS routing table that links the watch face complication slot to the app is corrupted. Subsequent click/press actions on that complication completely freeze and fail to launch the app. Steps to Reproduce Open a Connect IQ Device App that successfully publishes data. Do NOT exit the app manually. Leave the app sitting in the foreground unattended. Wait for the watch screen to dim and timeout until watch face. Tap or long-press the complication slot to relaunch the app</description><category domain="https://forums.garmin.com/developer/connect-iq/tags/Connect%2bIQ%2bApp">Connect IQ App</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/sdk">sdk</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/bug">bug</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/bug%2breport">bug report</category></item><item><title>Complication Click-to-Launch Routing Table Deadlocks After Foreground App Experiences Power-Save Timeout (Fenix 9 Pro)</title><link>https://forums.garmin.com/developer/connect-iq/i/bug-reports/complication-click-to-launch-routing-table-deadlocks-after-foreground-app-experiences-power-save-timeout-fenix-9-pro-1163697402</link><pubDate>Sun, 25 Oct 2026 20:08:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:212857b3-3a66-425a-9d3b-b82c5d275e19</guid><dc:creator>6353679</dc:creator><description>There is a critical firmware-level lifecycle routing bug on the Fenix 9 Pro(may be orther models). When a Connect IQ Device App acting as a complication provider is terminated by a system-enforced Power-Save Timeout (Screen-Off Teardown) while sitting in the foreground, the underlying OS routing table that links the watch face complication slot to the app is corrupted. Subsequent click/press actions on that complication completely freeze and fail to launch the app. Steps to Reproduce Open a Connect IQ Device App that successfully publishes data. Do NOT exit the app manually. Leave the app sitting in the foreground unattended. Wait for the watch screen to dim and timeout until watch face. Tap or long-press the complication slot to relaunch the app</description><category domain="https://forums.garmin.com/developer/connect-iq/tags/Connect%2bIQ%2bApp">Connect IQ App</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/sdk">sdk</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/bug">bug</category><category domain="https://forums.garmin.com/developer/connect-iq/tags/bug%2breport">bug report</category></item><item><title>Forum Post: RE: Device App cannot be relaunched via Complication Press after being killed by Power Save Timeout</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/446854/device-app-cannot-be-relaunched-via-complication-press-after-being-killed-by-power-save-timeout/2074357</link><pubDate>Sun, 25 Oct 2026 19:48:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:b2c9d638-8902-46c8-9a67-f1bf84318a82</guid><dc:creator>6353679</dc:creator><description>I haven&amp;#39;t I&amp;#39;ve been focused on narrowing down the codebase, but I can set that up.However, looking strictly at the lifecycle flow, here is exactly what my onStop() looks like: function onStop(state as Dictionary?) as Void { armBackgroundRefresh(); try { // This is shared by both foreground exit and background process termination TeaTimeComplications.publish(); } catch (e) { } } The publish() function internally executes Complications.updateComplication() . My main suspicion is that during a forced Power Save Timeout , the foreground process tree is in the middle of being dismantled by the OS. Executing an IPC call like updateComplication() right at this collapsing moment might be corrupting the OS complication routing table, leaving the watch face with a &amp;quot;zombie&amp;quot; reference to the app. Before I jump into logs, is it generally considered unsafe or an anti-pattern to push complication updates inside a foreground onStop() during a system-enforced shutdown?</description></item><item><title>Forum Post: RE: Device App cannot be relaunched via Complication Press after being killed by Power Save Timeout</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/446854/device-app-cannot-be-relaunched-via-complication-press-after-being-killed-by-power-save-timeout/2074352</link><pubDate>Sun, 25 Oct 2026 19:26:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:e12db6c2-a366-4ba2-ae50-e71308a8a770</guid><dc:creator>jim_m_58</dc:creator><description>Have you tried adding println calls to help track what&amp;#39;s happening on the real device? If you are using the 4.2 SDK, it&amp;#39;s really old. 9.3.0 is the latest.</description></item><item><title>Forum Post: Device App cannot be relaunched via Complication Press after being killed by Power Save Timeout</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/446854/device-app-cannot-be-relaunched-via-complication-press-after-being-killed-by-power-save-timeout</link><pubDate>Sun, 25 Oct 2026 18:09:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9a806efc-1958-46a1-b095-e789e37bc1a9</guid><dc:creator>6353679</dc:creator><description>Hi everyone, I am developing a Device App (built with Connect IQ SDK 4.2+ / API level 5.0.0) that registers and publishes data to two native/third-party watch face complication slots using Complications.updateComplication() . I am encountering a strange lifecycle / routing freeze bug regarding how the app is exited. Here are the two distinct scenarios: Scenario A (Normal Exit - Works): If the user opens the Device App, interacts with it, and manually exits back to the watch face, clicking the complication on the watch face successfully launches the app as expected. Scenario B (Power Save Kill - Breaks): If the user opens the Device App and leaves it unattended in the foreground until the screen dims and the system forces a Power Save Timeout (Hard Kill) , the complication on the watch face completely freezes its click behavior. Clicking the complication fails to launch the app , rendering the slot unresponsive until the app is manually opened through the activities menu again. Our Current Findings: We suspect the issue is inside the onStop(state) lifecycle method. Currently, the app invokes Complications.updateComplication() inside onStop() on every exit path to ensure the watch face receives the last-cached values. When Scenario B happens, the foreground UI thread is being torn down by the OS while simultaneously attempting to open an IPC pipe to the system&amp;#39;s complication manager during onStop() . This seems to corrupt the underlying routing table, causing the Garmin OS to flag the App ID as &amp;quot;zombie/suspended&amp;quot; rather than fully deceased. Thus, subsequent watch face click events are intercepted or ignored by the OS instead of triggering a clean Cold Start . Questions: Has anyone else experienced a breakdown of Complication click-to-launch routing when a Device App is terminated by a screen-off timeout? Is skipping the complication publication explicitly inside the foreground onStop() path the recommended way to avoid this deadlock, or is there a specific state flag passed into onStop(state) that can help differentiate a clean user-exit from a forced system power-save shutdown? Any insights or architectural advice would be greatly appreciated! Thanks in advance.</description></item><item><title>Forum Post: RE: Watchface: Glance</title><link>https://forums.garmin.com/developer/connect-iq/f/showcase/279043/watchface-glance/2074325</link><pubDate>Sun, 25 Oct 2026 17:38:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:484af96d-8b8c-460e-bb58-20baf04707c7</guid><dc:creator>1521197</dc:creator><description>I miss these features for &amp;quot;Easy round&amp;quot; watch face: -display steps in K when more than 10K -update heath rate every second Easy round is my second best WF - after Glance. Thanks for them!</description></item><item><title>Forum Post: RE: Edge 1060 and drawText</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/446593/edge-1060-and-drawtext/2074314</link><pubDate>Sun, 25 Oct 2026 17:10:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:6f6a4e64-a049-40d1-b2a1-5b98ea452532</guid><dc:creator>Pdlpsher</dc:creator><description>Thanks! PM sent!</description></item></channel></rss>