diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index 3f847c6df0b9cc8f4f2ff97f25a7314f59e5e401..6d33ce7287a7a26652fbd963ea8eb735726d8fe2 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -1170,14 +1170,15 @@ static bool s_net_states_proc(dap_proc_thread_t *a_thread, void *a_arg)
             // delete all links
             struct net_link *l_link, *l_link_tmp;
             HASH_ITER(hh, l_net_pvt->net_links, l_link, l_link_tmp) {
-                HASH_DEL(l_net_pvt->net_links, l_link);
-                if (l_link->link) {
+                if (l_link && l_link->link) {
                     dap_chain_node_client_t *l_client = l_link->link;
-                    l_client->callbacks.delete = NULL;
-                    dap_chain_node_client_close_mt(l_client);
+//                    l_client->callbacks.delete = NULL;
+                    s_net_link_remove(l_net_pvt, l_client, false);
+//                    dap_chain_node_client_close_mt(l_client);
                 }
-                DAP_DEL_Z(l_link->link_info);
-                DAP_DELETE(l_link);
+//                HASH_DEL(l_net_pvt->net_links, l_link);
+//                DAP_DEL_Z(l_link->link_info);
+//                DAP_DEL_Z(l_link);
             }
             struct downlink *l_downlink, *l_dltmp;
             HASH_ITER(hh, l_net_pvt->downlinks, l_downlink, l_dltmp) {