Having now been debugging for the past few hours, I've discovered that the latest version of GCM (3.19) on Android returns numbers within JSON retrieved from the Internet as a type Long. This would be fine if except that if you are using any of those JSON values as array indexes you will receive the following error:
UnexpectedTypeException: Expected Number, given Long
Although this looks like the issue with retrieving settings values, as recently brought up again in this thread, the error I'm seeing is, in this case, a result of arrays not accepting Long values for an index. And the reason I'm using a Long is because I'm using a value from JSON data I retrieved from an API endpoint.
I don't have an iOS device to test with but this might also affect iOS too. Though if this affects your app, you'll want to handle it regardless unless you can guarantee you don't have any Android users.
Garmin folks: if this should be considered a bug (albeit outside of the CIQ team), let me know and I'll repost properly.
Cheers,
Douglas