diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
index cdb9704a1d69b410d60c4b9f6c9275647b965ce5..ce03090d8f371c7ec71786d669bc77aa5219bbb2 100644
--- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
+++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
@@ -373,7 +373,6 @@ void dap_stream_ch_chain_net_srv_tx_cond_added_cb(UNUSED_ARG void *a_arg, UNUSED
     }
     pthread_mutex_lock(&l_net_srv->grace_mutex);
     HASH_FIND(hh, l_net_srv->grace_hash_tab, a_tx_hash, sizeof(dap_hash_fast_t), l_item);
-    pthread_mutex_unlock(&l_net_srv->grace_mutex);
     if (l_item){
         log_it(L_INFO, "Found tx in ledger by notify. Finish grace.");
         // Stop timer
@@ -389,6 +388,7 @@ void dap_stream_ch_chain_net_srv_tx_cond_added_cb(UNUSED_ARG void *a_arg, UNUSED
         DAP_DELETE(l_item->grace);
         DAP_DELETE(l_item);
     }
+    pthread_mutex_unlock(&l_net_srv->grace_mutex);
 }
 
 static bool s_service_start(dap_stream_ch_t *a_ch , dap_stream_ch_chain_net_srv_pkt_request_t *a_request, size_t a_request_size)
diff --git a/modules/net/srv/dap_chain_net_srv_stream_session.c b/modules/net/srv/dap_chain_net_srv_stream_session.c
index fd218ff8f24d27588c509eee4389c0b3c7fd40c6..fb6bbdb501f560d4f26f4f1f9422ae2d9c04547a 100644
--- a/modules/net/srv/dap_chain_net_srv_stream_session.c
+++ b/modules/net/srv/dap_chain_net_srv_stream_session.c
@@ -88,7 +88,7 @@ dap_chain_net_srv_usage_t* dap_chain_net_srv_usage_add (dap_chain_net_srv_stream
         l_ret->service = a_srv;
         pthread_rwlock_init(&l_ret->rwlock,NULL);
         a_srv_session->usage_active = l_ret;
-        log_it( L_NOTICE, "Added service %s:0x%016"DAP_UINT64_FORMAT_X" , usage id: %d", l_ret->net->pub.name, a_srv->uid.uint64, l_ret->id);
+        log_it( L_NOTICE, "Added service %s:0x%016"DAP_UINT64_FORMAT_X" , usage id: %u", l_ret->net->pub.name, a_srv->uid.uint64, l_ret->id);
         return l_ret;
     }else{
         log_it( L_ERROR, "Some NULLs was in input");
@@ -107,6 +107,20 @@ void dap_chain_net_srv_usage_delete (dap_chain_net_srv_stream_session_t * a_srv_
     if (!a_srv_session || !a_srv_session->usage_active)
         return;
 
+    dap_chain_net_srv_grace_usage_t *l_item = NULL;
+    pthread_mutex_lock(&a_srv_session->usage_active->service->grace_mutex);
+    HASH_FIND(hh, a_srv_session->usage_active->service->grace_hash_tab, &a_srv_session->usage_active->tx_cond_hash, sizeof(dap_hash_fast_t), l_item);
+    if (l_item){
+        log_it(L_INFO, "Found tx in ledger by notify. Finish grace.");
+        // Stop timer
+        dap_timerfd_delete_mt(l_item->grace->timer->worker, l_item->grace->timer->esocket_uuid);
+        // finish grace
+        HASH_DEL(a_srv_session->usage_active->service->grace_hash_tab, l_item);
+        DAP_DELETE(l_item->grace);
+        DAP_DELETE(l_item);
+    }
+    pthread_mutex_unlock(&a_srv_session->usage_active->service->grace_mutex);
+
     if ( a_srv_session->usage_active->receipt )
         DAP_DEL_Z( a_srv_session->usage_active->receipt );
     if ( a_srv_session->usage_active->receipt_next )