If a reliable mesh transfer is ongoing the node will crash with a mesh assert at access_reliable.c:373, in access_reliable_cancel_all().
This happens because access_clear() calls access_state_clear() and then access_reliable_cancel_all().
The access_state_clear() will erase m_model_pool and access_reliable_cancel_all() will cancel all ongoing transfers which holds a handle into m_model_pool which is now invalid and thus access_model_p_args_get() returns NRF_ERROR_NOT_FOUND triggering the assert.
Swapping the calls make things work better.
I'm using SDK For Mesh v3.1.0.
Thanks.