What does "ERROR: System Error" mean?

I'm getting these errors from my alpha tester in CIQ_LOG.txt .
ERROR: System Error
DETAILS: Failed invoking <symbol>
STORE_ID: 00000000000000000000000000000000
CALLSTACK:
C:\alan\projects\raceQsGarmin\raceQs\source\db_navigation.mc (onUpdate:111)

ERROR: System Error
DETAILS: Failed invoking <symbol>
STORE_ID: 00000000000000000000000000000000
CALLSTACK:
C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc (dispData:1143)
C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc (GPSData:833)

ERROR: System Error
DETAILS: Failed invoking <symbol>
STORE_ID: 00000000000000000000000000000000
CALLSTACK:
C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc (checkForMarkRounding:1830)
C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc (dispData:1679)
C:\alan\projects\raceQsGarmin\raceQs\source\engine.mc (GPSData:849)

ERROR: System Error
DETAILS: Failed invoking <symbol>
STORE_ID: 00000000000000000000000000000000
CALLSTACK:
C:\alan\projects\raceQsGarmin\raceQs\source\db_navigation.mc (onUpdate:125)



Does anyone know what to make of "System Error"?

Yes, I have looked at the referenced lines, and they are fine, executed many times without issue. I'm not looking for a solution to the cause of the crash, but to understand what "System Error" tells me.
  • Even in 6 or 8 weeks, 300 is very unusual.

    Are they all APAC devices?  you can tell by the languages in the ERA report. 

    You should also see a stack trace in the ERA.  What was the last thing done in your code?

  • well, now that i'm off the clock and have time to actually look, 282 of the 300 errors are all for an Edge Explore 2 on an app.Storage.setValue line.  guessing i need to put that behind a has check.  which makes me wonder why storage is better than a property if it's not fully supported on all devices....

  • How often ar you calling Storage.setValue()?each time compute() or onUpdate() is called?  That would be a bunch of file writes.  You probably only need to do one write when the activity recording stops (see the onTimer* callbacks.).  Maybe once per lap?

  • only when the user saves the settings.  sounds like someone keeps getting a crash on an edge explore 2 and keeps trying over and over. or it's all my customers with those models.

  • Maybe you need to do the has check, but I doubt it'll help in case of the EE2, because it was released a year ago and even the 1st (earliest) CIQ version was way higher than 2.4.0, so it should have Properties, Storage. I have an EE2 and I use Properties.setValue in my own DF. And even if that was the case you would see Symbol not found error, not System error. This really sounds like 1 buggy EE2. In ERA you should see the languages and the device versions, do you see more than one of those?

  • def looks to be multiple units.  and to clarify, the error is on a Storage.setValue line, not a setProperty (i use both and no errors are being reported on the setProperty lines)

    Devices:
    Edge® Explore 2: 9.07
    App Versions: 11.3.0
    Languages: dan, deu, eng, fre, kor, pol, spa, ukr

  • can you post the full error from ERA, and your code from the same area (including identification of lines vs the ERA stack trace)?

  • Error Name: System Error
    Occurrences: 284
    First Occurrence: 2023-06-01
    Last Occurrence: 2023-07-13
    Devices:
    Edge® Explore 2: 9.07
    App Versions: 11.3.0
    Languages: dan, deu, eng, fre, kor, pol, spa, ukr
    Backtrace:
    WindFieldView.setProperties:670
    WindFieldView.onSettingsChanged:208
    HighMemView.onSettingsChanged:582
    WindFieldView.setLayoutWithObscurity:242
    WindFieldView.onUpdate:328
    HighMemView.onUpdate:448

    function setProperties(app) {
        try {
          app.setProperty("Interval", updateInterval);
          app.Storage.setValue("PaymentType", paymentType);   <- LINE 670
          app.Storage.setValue("Status", status);
          app.setProperty("Source", src);
          app.setProperty("Version", $.Version + " - " + status);
        } catch (e) {}
        setFieldLocs();
      }
  • Why do you have app.Storage.setValue? It should be Storage.setValue or Toybox.Application.Storage.setValue

    Also why you mix old app.setProperty and new Storage.setValue? It makes no sense to use them both unless you're trying to crash the app on purpose.

  • app is a reference to Toybox.Application, but looks like i can try Application.Storage.setValue

    slowly working on moving to the new way, but takes time and seems to work ok minus these EdgeExplore2's