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

Configureing Mesh node returns ACCESS_STATUS_INVALID_MODEL?

When configuring my Bluetooth Mesh server node to the network, it receives an error and I am not sure why.

I receive an ACCESS_STATUS_INVALID_MODEL error after having called config_client_model_app_bind() like this:

access_model_id_t model_id =
{
    .company_id = COMPANY_ID,
    .model_id = BEACON_SERVER_MODEL_ID = 0x00
};
config_client_model_app_bind(256, 0, model_id);

I have heavily based my project on the Light Switch example from the mesh SDK, and are therefore at little puzzled as to why this does not work.

Am i doing anything wrong here? And if not, could the problem be on the server instead of the client?

EDIT 1: I have tried to do some debugging on the server and found that access.c:access_handle_get() returns NRF_ERROR_NOT_FOUND.

It seems to do this because this if() statement does not return true:

if (m_model_pool[i].model_info.element_index == element_index &&
    m_model_pool[i].model_info.model_id.model_id == model_id.model_id &&
    m_model_pool[i].model_info.model_id.company_id == model_id.company_id)

I have tried to write these values to the console, don't mind the weird format.

[0]element_index: 0x0000 == 0x0000
[0]model_id: 0x0000 == 0x0000
[0]company_id: 0xFFFF == 0x0560

[1]element_index: 0x0000 == 0x0000
[1]model_id: 0x0002 == 0x0000
[1]company_id: 0xFFFF == 0x0560

[2]element_index: 0xFFFF == 0x0000
[2]model_id: 0x0000 == 0x0000
[2]company_id: 0x0000 == 0x0560

Okay, now i can see what the problem are. But where should i correct these values?