diff --git a/mesh/access/src/access.c b/mesh/access/src/access.c
index 75cc0e370..8e1ffa41e 100644
--- a/mesh/access/src/access.c
+++ b/mesh/access/src/access.c
@@ -306,11 +306,13 @@ static bool check_tx_params(access_model_handle_t handle, const access_message_t
        publication is disabled by setting - Unassigned publish address, or deleted app key */
     if (p_tx_message->length >= ACCESS_MESSAGE_LENGTH_MAX)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid length\n");
         *p_status = NRF_ERROR_INVALID_LENGTH;
     }
     else if (!model_handle_valid_and_allocated(handle) ||
              m_model_pool[handle].model_info.element_index >= ACCESS_ELEMENT_COUNT)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid model handle\n");
         *p_status = NRF_ERROR_NOT_FOUND;
     }
     else if ((p_rx_message == NULL &&
@@ -318,6 +320,7 @@ static bool check_tx_params(access_model_handle_t handle, const access_message_t
               m_model_pool[handle].model_info.publish_address_handle == DSM_HANDLE_INVALID)) ||
               !is_valid_opcode(p_tx_message->opcode))
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid publication\n");
         *p_status = NRF_ERROR_INVALID_PARAM;
     }
     else
@@ -340,6 +343,8 @@ static uint32_t packet_tx(access_model_handle_t handle,
     dsm_local_unicast_addresses_get(&local_addresses);
     if (m_model_pool[handle].model_info.element_index >= local_addresses.count)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid element addr: %d %d\n",
+                m_model_pool[handle].model_info.element_index, local_addresses.count);
         return NRF_ERROR_INVALID_ADDR;
     }
 
@@ -359,10 +364,14 @@ static uint32_t packet_tx(access_model_handle_t handle,
         appkey_handle = m_model_pool[handle].model_info.publish_appkey_handle;
         if (dsm_address_get(m_model_pool[handle].model_info.publish_address_handle, &dst_address) != NRF_SUCCESS)
         {
+            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "dsm addr not found: %d\n",
+                    dst_address.value);
             return NRF_ERROR_NOT_FOUND;
         }
         if  (dst_address.value == NRF_MESH_ADDR_UNASSIGNED)
         {
+            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "dst addr unassigned: %d\n",
+                    dst_address.value);
             return NRF_ERROR_INVALID_ADDR;
         }
     }
@@ -407,6 +416,7 @@ static uint32_t packet_tx(access_model_handle_t handle,
 
     if (status != NRF_SUCCESS)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "dsm secmat failed addr: %d\n", status);
         return status;
     }
 
@@ -425,6 +435,11 @@ static uint32_t packet_tx(access_model_handle_t handle,
         __LOG(LOG_SRC_ACCESS, LOG_LEVEL_DBG1, "TX: [aop: 0x%04x] \n", p_tx_message->opcode.opcode);
         __LOG_XB(LOG_SRC_ACCESS, LOG_LEVEL_DBG1, "TX: Msg", p_access_payload, access_payload_len);
     }
+    else
+    {
+        __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, "tx_params", (uint8_t *)&tx_params, sizeof(nrf_mesh_tx_params_t));
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "nrf_mesh_packet_send failed: %d\n", status);
+    }
 
     return status;
 }
diff --git a/mesh/core/src/transport.c b/mesh/core/src/transport.c
index e0f289c99..65352d8f0 100644
--- a/mesh/core/src/transport.c
+++ b/mesh/core/src/transport.c
@@ -1207,6 +1207,9 @@ static uint32_t unsegmented_packet_tx(transport_packet_metadata_t * p_metadata,
 {
     if (payload_len + p_metadata->mic_size > TRANSPORT_UNSEG_PDU_LEN(p_metadata->net.control_packet))
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid lenght: %d %d %d\n",
+                payload_len, p_metadata->mic_size,
+                TRANSPORT_UNSEG_PDU_LEN(p_metadata->net.control_packet));
         return NRF_ERROR_INVALID_LENGTH;
     }
     network_tx_packet_buffer_t net_buf;
@@ -1218,6 +1221,7 @@ static uint32_t unsegmented_packet_tx(transport_packet_metadata_t * p_metadata,
                                              &p_packet_buffer_payload);
     if (status == NRF_SUCCESS)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "bearers: %x\n", net_buf.user_data.bearer_selector);
         trs_packet_header_build(p_metadata, (packet_mesh_trs_packet_t *) net_buf.p_payload);
 
         if (p_metadata->net.control_packet)
@@ -1231,6 +1235,10 @@ static uint32_t unsegmented_packet_tx(transport_packet_metadata_t * p_metadata,
 
         network_packet_send(&net_buf);
     }
+    else
+    {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "failed to allocate upper trs packet: %d\n", status);
+    }
     return status;
 }
 
@@ -1874,6 +1882,9 @@ static uint32_t upper_transport_tx(transport_packet_metadata_t * p_metadata, con
     uint32_t status = transport_metadata_validate(p_metadata);
     if (status != NRF_SUCCESS)
     {
+        __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, "transport metadata", (uint8_t *) p_metadata,
+                sizeof(transport_packet_metadata_t));
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid transport metadata: %d\n", status);
         return status;
     }
 
diff --git a/mesh/gatt/src/mesh_gatt.c b/mesh/gatt/src/mesh_gatt.c
index d6b67a961..90ee6387c 100644
--- a/mesh/gatt/src/mesh_gatt.c
+++ b/mesh/gatt/src/mesh_gatt.c
@@ -238,6 +238,7 @@ static void rx_state_clear(mesh_gatt_connection_t * p_conn)
 
 static uint16_t conn_index_alloc(uint16_t conn_handle)
 {
+    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "conn_index_alloc: %d\n", conn_handle);
     for (uint32_t i = 0; i < MESH_GATT_CONNECTION_COUNT_MAX; ++i)
     {
         if (m_gatt.connections[i].conn_handle == BLE_CONN_HANDLE_INVALID)
@@ -252,6 +253,7 @@ static uint16_t conn_index_alloc(uint16_t conn_handle)
 
 static void conn_index_free(uint16_t conn_index)
 {
+    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "conn_index_free: %d\n", conn_index);
     NRF_MESH_ASSERT(conn_index < MESH_GATT_CONNECTION_COUNT_MAX);
     rx_state_clear(&m_gatt.connections[conn_index]);
     tx_state_clear(&m_gatt.connections[conn_index]);
@@ -398,6 +400,10 @@ static void pdu_send_if_available(mesh_gatt_connection_t * p_conn)
 
         mesh_gatt_pdu_send(p_conn);
     }
+    else
+    {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Couldn't pop packet from buffer\n");
+    }
 }
 
 static void tx_complete_send_and_enqueue(mesh_gatt_connection_t * p_conn)
@@ -678,6 +684,8 @@ uint8_t * mesh_gatt_packet_alloc(uint16_t conn_index,
     NRF_MESH_ASSERT(size <= MESH_GATT_PROXY_PDU_MAX_SIZE);
     if (m_gatt.connections[conn_index].conn_handle == BLE_CONN_HANDLE_INVALID)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "invalid conn_handle: %d\n",
+                m_gatt.connections[conn_index].conn_handle);
         return NULL;
     }
 
@@ -697,6 +705,7 @@ uint8_t * mesh_gatt_packet_alloc(uint16_t conn_index,
     }
     else
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "failed to alloc gatt packet: %d\n", status);
         NRF_MESH_ASSERT(NRF_ERROR_NO_MEM == status);
         return NULL;
     }
diff --git a/mesh/gatt/src/proxy.c b/mesh/gatt/src/proxy.c
index 9928a0d81..5b5c52195 100644
--- a/mesh/gatt/src/proxy.c
+++ b/mesh/gatt/src/proxy.c
@@ -270,6 +270,7 @@ static void packet_send(proxy_connection_t * p_connection)
 
     if(mesh_gatt_packet_send(connection_index(p_connection), p_connection->p_alloc_packet) != NRF_SUCCESS)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "mesh_gatt_packet_send failed\n");
         mesh_gatt_packet_discard(connection_index(p_connection), p_connection->p_alloc_packet);
     }
     p_connection->p_alloc_packet = NULL;
@@ -856,12 +857,15 @@ void core_tx_packet_send_cb(core_tx_bearer_t * p_bearer, const uint8_t * p_packe
     proxy_connection_t * p_connection = PARENT_BY_FIELD_GET(proxy_connection_t, bearer, p_bearer);
     NRF_MESH_ASSERT(p_connection->p_alloc_packet);
 
+    __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, "core_tx_packet_send_cb", p_packet, packet_length);
+
     memcpy(p_connection->p_alloc_packet, p_packet, packet_length);
     packet_send(p_connection);
 }
 
 void core_tx_packet_discard_cb(core_tx_bearer_t * p_bearer)
 {
+    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "core_tx_packet_discard_cb\n");
     NRF_MESH_ASSERT(p_bearer);
     proxy_connection_t * p_connection = PARENT_BY_FIELD_GET(proxy_connection_t, bearer, p_bearer);
     packet_discard(p_connection);
diff --git a/models/foundation/config/src/config_server.c b/models/foundation/config/src/config_server.c
index fdcbf2d43..0f8503ef2 100644
--- a/models/foundation/config/src/config_server.c
+++ b/models/foundation/config/src/config_server.c
@@ -200,7 +200,8 @@ static void send_reply(access_model_handle_t handle, const access_message_rx_t *
         .transmic_size = NRF_MESH_TRANSMIC_SIZE_DEFAULT
     };
 
-    (void) access_model_reply(handle, p_message, &reply);
+    uint32_t status = access_model_reply(handle, p_message, &reply);
+    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "access_model_reply status: %d\n", status);
 }
 
 /* Sends the network beacon state in response to a network beacon state set/get message: */
@@ -877,6 +878,7 @@ static void handle_composition_data_get(access_model_handle_t handle, const acce
 {
     if (p_message->length != sizeof(config_msg_composition_data_get_t))
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "composition_data_get: Incorrect length: %d", p_message->length);
         return;
     }
 
@@ -892,6 +894,8 @@ static void handle_composition_data_get(access_model_handle_t handle, const acce
     uint16_t size = CONFIG_COMPOSITION_DATA_SIZE;
     config_composition_data_get(p_response->data, &size);
 
+    __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, "composition_data_get:", p_response->data, size);
+
     send_reply(handle, p_message, CONFIG_OPCODE_COMPOSITION_DATA_STATUS, buffer,
                sizeof(config_msg_composition_data_status_t) + size, nrf_mesh_unique_token_get());
 
@@ -902,6 +906,7 @@ static void handle_config_default_ttl_get(access_model_handle_t handle, const ac
 {
     if (p_message->length != 0)
     {
+        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "default_ttl_get: Incorrect length: %d", p_message->length);
         return;
     }
 
@@ -3196,5 +3201,6 @@ uint32_t config_server_init(config_server_evt_cb_t evt_cb)
 
 uint32_t config_server_bind(dsm_handle_t devkey_handle)
 {
+    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "config_server_bind\n");
     return access_model_application_bind(m_config_server_handle, devkey_handle);
 }
