This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

how to handle PM_EVT_PEER_DATA_UPDATE_FAILED

Hi,

I'm seeing this error PM_EVT_PEER_DATA_UPDATE_FAILED sometimes and I need to understand what are the options on handling this error except for just asserting it. I can't seem to find any information on it.

So far, I've seen this happen when

  • Paired with Windows 10, removed peripheral on Windows menu and paired again
  • After DFU and the GATT profile was modified (added some characteristic)

I'm using SDK14.0 with S132 v5.0.0 on a custom board with nRF52832.

I'll appreciate the help.

Edit:

Screenshot of assert and the callstack, error's value is 10: image description

Parents
  • Hi,

    Could you try to debug deeper and find where the PM_EVT_PEER_DATA_UPDATE_FAILED is thrown ? There are only a few places it's assigned to evt_id.

    I assume what you described are 2 different scenarios that you see the issue, they are not related ?

    On the first scenario, have you enable allow_repairing = true when there is PM_EVT_CONN_SEC_CONFIG_REQ event in pm_evt_handler() in main.c ? Without that the nRF5 will reject pairing if the central try to pair again.

    Do you have any flash operation in your application ? I suspect there could be some corruption in the flash area dedicated for peer manager.

Reply
  • Hi,

    Could you try to debug deeper and find where the PM_EVT_PEER_DATA_UPDATE_FAILED is thrown ? There are only a few places it's assigned to evt_id.

    I assume what you described are 2 different scenarios that you see the issue, they are not related ?

    On the first scenario, have you enable allow_repairing = true when there is PM_EVT_CONN_SEC_CONFIG_REQ event in pm_evt_handler() in main.c ? Without that the nRF5 will reject pairing if the central try to pair again.

    Do you have any flash operation in your application ? I suspect there could be some corruption in the flash area dedicated for peer manager.

Children
Related