I have a node running with the SDK for Mesh v3.1.0. It crashes during boot up in restore_addresses_for_model() due to dsm_address_subscription_add_handle() returning NRF_ERROR_NOT_FOUND.
This is because nothing has been restored from flash for DSM.
In mesh_stack_init() the return value from dsm_flash_config_load() is ignored and access_flash_config_load() is called regardless.
Wouldn't it make more sense to erase the access flash area in case the DSM failed to load as access depends on DSM?
dsm_flash_config_load() fails because it can't read the dsm metadata entry. I have no clue into how it could have been lost.
A hexdump of the DSM flash area. It doesn't contain the expected DSM_FLASH_HANDLE_METAINFO. It is however sealed.
The recovery page contains the following, which indicate that a defrag was performed and completed successfully.
Wouldn't it make sense to call reset_flash_area() if it can't find the metainfo? As the dsm_init() must have created it in case the area was empty?
Thanks.