File Not Found Error

I received a report from a user who gets a 'File Not Found Error' when using my app. I could not reproduce it on my devices or in the sim. Has anyone an idea of what can cause this error?

Error: File Not Found Error
Details: 'Failed invoking <symbol>'
Time: 2018-12-17T13:52:13Z
Part-Number: 006-B2700-00
Firmware-Version: '5.50'
Language-Code: eng
ConnectIQ-Version: 3.0.4
Store-Id: 4d598437-2092-4d76-b058-f9e4df8d567d
Store-Version: 20
Filename: 407137A5
Appname: My QRCode
Stack:
- pc: 0x100000fc
- pc: 0x100015e0

  • Former Member
    Former Member
    Replicated IQ crash on a fenix 5. We've created ticket Weretech-6550 to take a look.


    Thanks,
    Kamau
  • Former Member
    Former Member
    r.485, do you know what device and firmware was being used?

    Thanks,
    Kamau
  • do you know what device and firmware was being used?


    The crash log snippet above has all of the details..

    Part-Number: 006-B2700-00
    Firmware-Version: '5.50'


    That is vivoactive3 with 5.50 firmware. :P

  • Thanks for looking into it, Kamau.

    I think users of Fenix 3, Fenix 5 and Vivoactive 3 have experienced the problem.

    It doesn't seem to happen because of loading resources from the file system (as suggested by the documentation), but because of loading a Ui.BitmapResource saved on the Application.Storage after Communications.makeImageRequest().

    But I'm not really sure, because I check if Storage is available before trying to save. So the error shouldn't happen on the Fenix 3.

    On my Fenix 5S Plus FW6.0 it runs perfectly.
  • Hi guys, is there any update on this issue?

    KR
  • r.485
    FWIW, I am intermittantly seeing this behaviour during my testing on a F5. Yesterday I followed the stack address, added some logging code and re-ran, but could not repro the error.

    Error: File Not Found Error
    Details: 'Failed invoking <symbol>'
    Time: 2019-01-05T02:37:29Z
    Part-Number: 006-B2697-00
    Firmware-Version: '12.00'
    Language-Code: eng
    ConnectIQ-Version: 3.0.7
    Filename: QS_RACE
    Appname: QsPlus
    Stack:
    - pc: 0x10005971


    I was surprised that it was during testing and the stack address was not decoded (to module, line no).
  • Happened again just now:
    Error: File Not Found Error
    Details: 'Failed invoking <symbol>'
    Time: 2019-01-05T22:05:18Z
    Part-Number: 006-B2697-00
    Firmware-Version: '12.00'
    Language-Code: eng
    ConnectIQ-Version: 3.0.7
    Filename: QS_START
    Appname: raceQs
    Stack:
    - pc: 0x10005324


    0x10005324= 268456740 (WTF can't the error be reported in decimal like the debug.xml???)
    startEngine.mc" id="79" lineNum="253" pc="268456741" symbol="receiveMarks"
    Line 253:
    var _loadedMarks = Storage.getValue("loadedMarks");

    Re-ran and no error was reported.
    Looks to me like it could be a latency issue with Storage.getValue.
    I have just migrated from Properties to Storage and this is a new occurrence.

    Travis.ConnectIQ Any thoughts?
  • Damn, happened again:
    Error: File Not Found Error
    Details: 'Failed invoking <symbol>'
    Time: 2019-01-05T22:31:46Z
    Part-Number: 006-B2697-00
    Firmware-Version: '12.00'
    Language-Code: eng
    ConnectIQ-Version: 3.0.7
    Filename: QS_RACE
    Appname: QsPlus
    Stack:
    - pc: 0x1000598f


    0x1000598f = 268458383

    raceQs_Racing/source/main.mc" id="74" lineNum="44" pc="268458384" symbol="onStart"/>

    Line 43: Storage.setValue("GUID", GUID);
    Line 44: userId = state["userId" ];


    This time it reproducible (3 for 3).
    Different app from above.
    It's occurring in the app that's being invoked by exitTo() (from the above app!)
    Line 43 is in the onStart() of the <iq:application entry="main" .. class, so it's very early in the app's execution.

    This is looking suspiciously like a latency issue with Storage.


  • I now have a fully reproducible case:
    I delete my app from the watch (which also removes the app's files in the APPS/DATA directory.)
    Then run my app, which requires a login from the phone and it crashes on the first occasion it executes Storage.setValue.
    It's hardly a "test case" as it's my full app, but nevertheless I have posted a bug report.
  • I was surprised that it was during testing and the stack address was not decoded (to module, line no).

    Only addresses for MonkeyC code are decoded (user code and API code that is written in MonkeyC). If there is an issue loading the file that contains the debug data (the .PRG file itself) or if the .PRG file has no debug data, you won't see file/line information in the stack trace.

    You are debugging a FILE_NOT_FOUND error, so it is possible that this is related to your error.

    0x10005324= 268456740 (WTF can't the error be reported in decimal like the debug.xml???)

    Because, by convention, addresses are supposed to be shown as hexadecimal integers. Our compiler code breaks that convention (i.e., api.debug.xml and api.db are doing it wrong).

    There might be some concerns with fixing this since there are a few parts of the toolchain that read the data and we don't want to create incompatibilities for users that are using old plugin versions. If all of that code is written to be safe, it would accept a integer in any format and we could just change the code that generates those files. I'm not sure how interested the team would be to fix something like this, but I agree it is annoying.

    A while back I wrote a python script that took the path to api.debug.xml and then prompted for addresses to lookup and translate. With something like this you shouldn't care about the format of the data.

    Travis.ConnectIQ Any thoughts?

    Sure. It looks like a file is not found. It is possible that there is some issue where the file is not getting created or the file system isn't seeing that it is there, or maybe you aren't deleting all files associated with the app... I don't know.

    We'll have to run your test app on a device under a debugger to find out what is happening for sure.