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

Problem with provisioning after reset

Hi
We are able to provision several mesh-servers. 
The log on the RTT-Viewer of the client looks normal:
 0> <t:     915394>, mesh.c,  178, Local provisioning link established
 0> <t:     916961>, mesh.c,  237, Using static authentication
 0> <t:     928785>, mesh.c,  248, Static authentication data provided
 0> <t:     939937>, mesh.c,  193, Provisioning complete! Added 01F4 as handle 1
 0> <t:     940270>, provisioner.c,  122, Getting composition data
 0> <t:     942757>, provisioner.c,  332, Composition data: 00590000000000200001000000030100000200040059000000
 0> <t:     942761>, provisioner.c,  130, Adding appkey
 0> <t:     943853>, mesh.c,  182, Local provisioning link closed
 0> <t:     946897>, provisioner.c,  139, Binding appkey to the Health model
 0> <t:     947742>, provisioner.c,  151, Binding appkey to the Simple message model
 0> <t:     949061>, provisioner.c,  176, Setting publication address for the health server to 0x0001
 0> <t:     952639>, provisioner.c,  198, Setting publication address for the message server to 0x0001
 0> <t:     957205>, provisioner.c,  207, Adding subscription
 0> <t:     958533>, mesh.c,  548, Configuration of device 0 successful
 0> <t:     958537>, mesh.c,  558, provisioner_config_successful_cb
When we reset (restart) the client(provisioner) board and then try to provision further servers we get
a Mesh assert.
 0> <t:     390869>, mesh.c,  178, Local provisioning link established
 0> <t:     392374>, mesh.c,  237, Using static authentication
 0> <t:     403809>, mesh.c,  248, Static authentication data provided
 0> <t:     415206>, mesh.c,  193, Provisioning complete! Added 01F5 as handle 2
 0> <t:     415540>, provisioner.c,  122, Getting composition data
 0> <t:     419283>, mesh.c,  182, Local provisioning link closed
 0> <t:     430889>, provisioner.c,  332, Composition data: 00590000000000200001000000030100000200040059000000
 0> <t:     430892>, provisioner.c,  130, Adding appkey
 0> <t:     434469>, provisioner.c,  139, Binding appkey to the Health model
 0> <t:     436060>, app_error_weak.c,   95, Mesh assert at 0x0003C562 (:0)
Addr2line leads to line 347 of provisioner.c:
    else if (p_event->opcode == CONFIG_OPCODE_MODEL_APP_STATUS &&
             m_prov_state == PROV_STATE_CONFIG_APPKEY_BIND_HEALTH)
    {
>>>  NRF_MESH_ASSERT(p_event->p_msg->app_status.status == ACCESS_STATUS_SUCCESS);   
        m_prov_state = PROV_STATE_CONFIG_APPKEY_BIND_ONOFF;
        do_config_step();
    }
p_event->p_msg->app_status.status is ACCESS_STATUS_INVALID_ADDRESS instead of ACCESS_STATUS_SUCCESS
We are using Mesh_SDK 2.0.1 and nRF5_SDK_15.0.0 / Softdevice 6.0.0.
Question: What could lead to this invalid address state?.
Kind regards
Gerry
  • Hi,

    thanks for your detailed estimation on that problem. We were searching and debugging for quite a long time on this, but the reason seems to be deeper in the SDK, where we don't really understand the mechanisms. Would be good, if you could take a look at it from your professional perspective after the holidays. Might be a good idea to make this case private, so we can share our client/provisioner code with you.

    Regards

    Gerry

Related