Any fix for makeImageRequest on CIQ 4+ devices?

I have a function that calls makeImageRequest in the background, and updates the watch face with the image when it is received. This works perfectly in the sim for a "Captain Marvel" watch so I know that the code can and does work, but I get this on the Fenix 7x sim:

When using SDK 7:

Error: Exception occurred
Details: failed inside handle_image_callback
Exception: Class usage is not allowed for the current app type.

It seems to me that because calls to makeWebRequest work on every device I've tested and makeImageRequest works on some devices that this error message about class usage is a red herring.

With SDK 6 I get this instead:

Error: Out Of Memory Error
Details: failed inside handle_image_callback
Stack:

Is there any hope that this will be fixed?

  • Why can’t they just throw a OutOfGraphicsMemoryException instead of a crash… or add a System .getGraphicsMemory() from the mysterious shared pool to allow runtime assessment of the likelihood of a request failing if image memory is less than expected from the request?

    developer.garmin.com/.../OutOfGraphicsMemoryException.html

  • Why can’t they just throw a OutOfGraphicsMemoryException instead of a crash… or add a System .getGraphicsMemory() from the mysterious shared pool to allow runtime assessment of the likelihood of a request failing if image memory is less than expected from the request?

    Yes, dealing with some of the inherent resource limitations can be painful. Limits such as memory usage and network response size can be handled relatively gracefully, because the API provides tools for that. But hitting Storage or Watchdog limits simply crashes the app, and the API does not offer good ways to handle those constraints.

    I once created a suggestion for a more general review of how the CIQ API handles such limitations:

    forums.garmin.com/.../holistic-review-of-ciq-limitations-for-large-applications

  • As I've posted before, this isn't a memory issue, it happens even with 1x1 images. It's just the error that this version of CIQ throws. It doesn't happen on CIQ 3 devices amoled or MIP, and it doesn't happen on CIQ 5 amoled devices. It's not being fixed for the same reason other people are saying it's a memory issue. Garmin isn't reading the whole thread, they assume the error thrown is correct and couldn't possibly be a bug, say it's a code problem even though it works everywhere but on one specific class of device, and continue to ignore it.

  • Testing on CIQ 6 and SDK 9.1 and making multiple image requests ran OK for an hour yesterday... and then bam, CIQ! screen and retrieved error below.  Restarted app immediately and continued OK for another hour until the end of my test ride.  I was in a more-remote place at the time and I wonder if the connectivity had dropped out part-way through the request which is unhandled at the API/CIQ side?  But just gives a poor end-user experience and repeating/simulating difficult.  This particular instance is not a display-tech issue.


    ---
    Error: System Error
    Details: failed inside handle_image_callback
    Time: 2026-03-19T14:21:36Z
    Part-Number: 006-B3843-00
    Firmware-Version: '30.18'
    Language-Code: eng
    ConnectIQ-API-Version: 6.0.0
    ConnectIQ-Version: 6.0.0

  • Was this in the background on a watchface which is where I'm seeing this problem, or in the foreground in an app? When I try it on a Fenix 8 with CIQ 6 I get the error right away. On a Venu 4, also CIQ 6, it works just fine.

  • Was this in the background on a watchface which is where I'm seeing this problem, or in the foreground in an app?

    All my requests are in the foreground, so not the same, sorry.  There are a lot of Fenix 8 models but I just checked and certainly Fenix 8 Solar 51mm for one example seems to be handling multiple requests - ie not failing right away 

  • iOS may handle multiple requests at the same, but Android only works with one at a time (or that was the case last time I tried)