diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index c514dc77e3e716cc98cca1a7a60ac6ab2efb4942..b213a6f1cfe6129589ea30ff6f6652ffe0aa7502 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -8768,6 +8768,17 @@ static void s_stage_connected_callback(dap_client_t* a_client, void * a_arg) {
     }
 }
 
+static void s_stage_connected_error_callback(dap_client_t* a_client, void * a_arg) {
+    dap_chain_node_client_t *l_node_client = DAP_CHAIN_NODE_CLIENT(a_client);
+    UNUSED(a_arg);
+    if(l_node_client) {
+        pthread_mutex_lock(&l_node_client->wait_mutex);
+        l_node_client->state = NODE_CLIENT_STATE_ERROR;
+        pthread_cond_signal(&l_node_client->wait_cond);
+        pthread_mutex_unlock(&l_node_client->wait_mutex);
+    }
+}
+
 int com_exec_cmd(int argc, char **argv, void **reply) {
     json_object ** a_json_arr_reply = (json_object **) reply;
     if (!dap_json_rpc_exec_cmd_inited()) {
@@ -8811,7 +8822,7 @@ int com_exec_cmd(int argc, char **argv, void **reply) {
     dap_chain_node_client_t * l_node_client = dap_chain_node_client_create(l_net, node_info, NULL, NULL);
 
     //handshake
-    l_node_client->client = dap_client_new(NULL, l_node_client);
+    l_node_client->client = dap_client_new(s_stage_connected_error_callback, l_node_client);
     l_node_client->client->_inheritor = l_node_client;
     dap_client_set_uplink_unsafe(l_node_client->client, &l_node_client->info->address, node_info->ext_host, node_info->ext_port);
     dap_client_pvt_t * l_client_internal = DAP_CLIENT_PVT(l_node_client->client);