'Operation failed' DFU error in iOS on some rare boards

I have opened this ticket on Github a few months ago but it doesn't seem to be maintained anymore : https://github.com/NordicSemiconductor/IOS-DFU-Library/issues/504

Among thousands of customers on iOS, that did tens of thousands of DFU, 25 of our customers get error "Operation failed" when applying DFU, after steps deviceConnecting -> dfuProcessStarting -> enablingDfuMode -> Operation failed

We have had, and continue to have, this error a few times per month since 2021.

On one specific device, 3 dfferent iphones failed to update it.

Everytime the customer found an Android phone to perform the DFU, it worked.

Parents
  • Hello,

    Sorry for the long response time. I am not that familiar with old SDK as use our new nRF connect SDK. I need to ask this internally for getting better insight. I will get back to you soon.

    Kind Regards,

    Abhijith

  • Hi Quentin, 
    I'm taking over the ticket as I have some more experience with the bootloader firmware. 
    From what Aleksander discovered, it seems that the problem occurred when the device tried to send an indication back to the phone to tell that it's received the command to switch to bootloader mode and will disconnect and enter bootloader. 

    For some reason  the indication was not sent (sd_ble_gatts_hvx() command having problem). 

    To be able to debug this we would need to see if there is any error return when calling sd_ble_gatts_hvx(). It's the best if you can capture a sniffer trace when the issue occurs. A sniffer trace would also be very useful. 

    But my assumption here is that you have never managed to reproduce the issue at your desk ? 

    Is the any possibility to get hold of the product from your customer and test it ? My assumption is that when the problem happen it will not change the behavior until it's updated by another phone  ?



  • e

    We don't reproduce it on our desks, and can't get hold of a customer having the issue.

    > My assumption is that when the problem happen it will not change the behavior until it's updated by another phone  ?
    Yes, and as we don't get the issue with the iphone we have at our office, getting hold at a product with the issue won't help us since we won't reproduce here

  • Hi Quentin, 

    It would be difficult to investigate further on limited debug information. I would suggest to close the ticket until the issue occurs again and that you can reproduce it or can get more information from the customers. 
    My suggestion is to try forgetting the device on the phone then pair (if needed) and do DFU again. They can try to turn off and on Bluetooth to make sure the device's cache is removed. 

  • Well yes, this is difficult for me also, but here we are.
    The issue very much occurs again, every day, and blocks our customers from performing DFU

    This is unpaired DFU, so I'm not sure what there is to forget

  • Hello again,

    May I ask, do you know when the error occurs? 

    Above you wrote "deviceConnecting -> dfuProcessStarting -> enablingDfuMode -> Operation failed", indicating that it happens when entering the bootloader mode, are you sure about that?

    Do you provide a different way to enter the bootloader mode in your devices, with a button, etc? Perhaps users could connect to the devices using nRF Connect, enable indications on the Buttlonless characteristic, send 0x01 to trigger the jump and then switch to your app, or the nRF DFU app to complete the update? Do you have any contact with customers infected by the issue?

Reply
  • Hello again,

    May I ask, do you know when the error occurs? 

    Above you wrote "deviceConnecting -> dfuProcessStarting -> enablingDfuMode -> Operation failed", indicating that it happens when entering the bootloader mode, are you sure about that?

    Do you provide a different way to enter the bootloader mode in your devices, with a button, etc? Perhaps users could connect to the devices using nRF Connect, enable indications on the Buttlonless characteristic, send 0x01 to trigger the jump and then switch to your app, or the nRF DFU app to complete the update? Do you have any contact with customers infected by the issue?

Children
Related