Acknowledged

Weather.getCurrentConditions() causes crash on Fenix 8

The last line in the following snippet causes a crash:

                if (Toybox has :Weather) {
                    dialMinMax=showFarenheit? [50.0,100.0]:[0.0,50.0];
                    var weather = Weather.getCurrentConditions();  
Here is the crash report from the ERA:
Error Name: System Error
Occurrences: 17
First Occurrence: 2024-09-19
Last Occurrence: 2024-09-19
Devices:
fēnix® 8 47mm / 51mm: 11.60
App Versions: 2.10.2
Languages: chs
Parents
  • It may have been the weather service, or it's possible that you're getting a null value for currentConditionsLocation, which is not supported in the latest firmware. If not properly handled via null checks, this has caused others to have issues with crashes using the Weather APIs.

    For some background, the location was found to be unreliable, so the feature has been removed from firmware. The Connect IQ APIs still support this member, but we plan to deprecate it in the future.

Comment
  • It may have been the weather service, or it's possible that you're getting a null value for currentConditionsLocation, which is not supported in the latest firmware. If not properly handled via null checks, this has caused others to have issues with crashes using the Weather APIs.

    For some background, the location was found to be unreliable, so the feature has been removed from firmware. The Connect IQ APIs still support this member, but we plan to deprecate it in the future.

Children
  • A bunch of users just reported the same issue, crash on getCurrentConditions:

    var w = Weather.getCurrentConditions();

    Is it a System 8 bug?

    -------------------------

    Error Name: System Error
    Occurrences: 1300
    First Occurrence: 2025-02-24
    Last Occurrence: 2025-02-25
    Devices:
    MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition: 20.19
    Forerunner® 255s: 22.22
    Venu® 3: 12.12, 13.17
    vívoactive® 5: 13.17
    Forerunner® 965: 22.22
     epixTm (Gen 2) / quatix® 7 Sapphire: 20.16, 20.19
    Forerunner® 165: 22.22, 21.22
    fēnix® 7 Pro: 20.16, 19.41, 20.19
     fēnix® 7X / tactix® 7 / quatix® 7X Solar / EnduroTm 2: 20.16
    fēnix® 7 / quatix® 7: 20.16, 19.34
     epixTm Pro (Gen 2) 51mm / D2Tm Mach 1 Pro / tactix® 7 – AMOLED Edition: 20.16
    Forerunner® 255 Music: 22.22
     epixTm Pro (Gen 2) 42mm: 20.16
    fēnix® 8 Solar 47mm: 13.31
    Forerunner® 265: 22.22
    fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm: 13.31
    Venu® 3S: 13.17
    Forerunner® 255: 22.22
     fēnix® 7X / tactix® 7 / quatix® 7X Solar / EnduroTm 2: 20.16, 20.19
    Instinct® 3 AMOLED 45mm: 7.08
     epixTm (Gen 2) / quatix® 7 Sapphire: 20.16
    fēnix® 7S Pro: 20.16
    Forerunner® 165 Music: 22.22
    fēnix® 7X Pro: 20.16
    Forerunner® 955 / Solar: 22.22
     fēnix® 7X / tactix® 7 / quatix® 7X Solar / EnduroTm 2: 20.16
    fēnix® 7S: 20.16
     fēnix® 7X / tactix® 7 / quatix® 7X Solar / EnduroTm 2: 20.16, 19.41, 20.19
    fēnix® 7 / quatix® 7: 20.16
     epixTm Pro (Gen 2) 47mm / quatix® 7 Pro: 20.16
    Forerunner® 255s Music: 22.22, 21.22
     EnduroTm 3: 13.31
    fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm: 13.31
    Forerunner® 265s: 22.22

  • A bit disappointing to hear that currentConditionsLocation may be deprecated.  It is very useful, no just for weather.

  • I am not trying to read currentConditionsLocation.   The crash is on the line:

    var weather = Weather.getCurrentConditions();