diff --git a/dap-sdk/net/client/dap_client_http.c b/dap-sdk/net/client/dap_client_http.c
index 2371d6cd58d2faba7729b5275fed15dbb1f72a30..baeef39724cd923730739a3ff4fdf08422206be1 100644
--- a/dap-sdk/net/client/dap_client_http.c
+++ b/dap-sdk/net/client/dap_client_http.c
@@ -341,6 +341,10 @@ void* dap_client_http_request_custom(const char *a_uplink_addr, uint16_t a_uplin
 
     // create socket
     int l_socket = socket( PF_INET, SOCK_STREAM, 0);
+    if (l_socket == -1) {
+        log_it(L_ERROR, "Error %d with socket create", errno);
+        return NULL;
+    }
     // set socket param
     int buffsize = DAP_CLIENT_HTTP_RESPONSE_SIZE_MAX;
 #ifdef _WIN32
diff --git a/dap-sdk/net/client/dap_client_pvt.c b/dap-sdk/net/client/dap_client_pvt.c
index ed75611c32415c6ae8195bb6ef06a52cfc00d79e..8455364d9c3fc86bec2b6b6cacabcd1421cd9a3c 100644
--- a/dap-sdk/net/client/dap_client_pvt.c
+++ b/dap-sdk/net/client/dap_client_pvt.c
@@ -439,6 +439,11 @@ static void s_stage_status_after(dap_client_pvt_t * a_client_pvt)
             log_it(L_INFO, "Go to stage STREAM_SESSION: process the state ops");
 
             a_client_pvt->stream_socket = socket( PF_INET, SOCK_STREAM, 0);
+            if (a_client_pvt->stream_socket == -1) {
+                log_it(L_ERROR, "Error %d with socket create", errno);
+                a_client_pvt->stage_status = STAGE_STATUS_ERROR;
+                break;
+            }
 #ifdef _WIN32 
             {
               int buffsize = 65536;
diff --git a/dap-sdk/net/server/enc_server/dap_enc_http.c b/dap-sdk/net/server/enc_server/dap_enc_http.c
index 79bbd50a90b7b19ec73600041c9730cf492eea80..e5513c121635f35a4749ae377c8983717ba23bc5 100644
--- a/dap-sdk/net/server/enc_server/dap_enc_http.c
+++ b/dap-sdk/net/server/enc_server/dap_enc_http.c
@@ -124,9 +124,6 @@ void enc_http_proc(struct dap_http_simple *cl_st, void * arg)
         dap_enc_key_delete(msrln_key);
 
         *return_code = Http_Status_OK;
-
-
-        *return_code = Http_Status_Unauthorized;
     } else{
         log_it(L_ERROR,"Wrong path '%s' in the request to enc_http module",cl_st->http->url_path);
         *return_code = Http_Status_NotFound;
diff --git a/dap-sdk/net/stream/ch/dap_stream_ch.c b/dap-sdk/net/stream/ch/dap_stream_ch.c
index 4c4a8148c2b1d10ac82f8f13a3edc3cac60b6ede..8a93a0106ff1c9817ef62f808aefd3c11c492e08 100644
--- a/dap-sdk/net/stream/ch/dap_stream_ch.c
+++ b/dap-sdk/net/stream/ch/dap_stream_ch.c
@@ -132,6 +132,10 @@ void dap_stream_ch_delete(dap_stream_ch_t *a_ch)
     pthread_mutex_lock(&s_ch_table_lock);
     struct dap_stream_ch_table_t *l_ret;;
     HASH_FIND_PTR(s_ch_table, a_ch, l_ret);
+    if (!l_ret) {
+        pthread_mutex_unlock(&s_ch_table_lock);
+        return;
+    }
     HASH_DEL(s_ch_table, l_ret);
     pthread_mutex_unlock(&s_ch_table_lock);
 
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index bcc2ad76163c2e1c92f00b0717c9d87a9734d2af..b1fb31ee51129966288237deef8f022791a37fa4 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -362,7 +362,7 @@ static int s_net_states_proc(dap_chain_net_t * l_net)
                 case NODE_ROLE_ARCHIVE:
                 case NODE_ROLE_CELL_MASTER: {
                     // Add other root nodes as synchronization links
-                    while (dap_list_length(l_pvt_net->links_info) <= s_max_links_count) {
+                    while (dap_list_length(l_pvt_net->links_info) < s_max_links_count) {
                         int i = rand() % l_pvt_net->seed_aliases_count;
                         dap_chain_node_addr_t *l_link_addr = dap_chain_node_alias_find(l_net, l_pvt_net->seed_aliases[i]);
                         dap_chain_node_info_read(l_net, l_link_addr);
@@ -373,32 +373,30 @@ static int s_net_states_proc(dap_chain_net_t * l_net)
                 case NODE_ROLE_LIGHT:
                 default: {
                     // Get DNS request result from root nodes as synchronization links
-                    while (dap_list_length(l_pvt_net->links_info) <= s_max_links_count) {
+                    while (dap_list_length(l_pvt_net->links_info) < s_max_links_count) {
                         int i = rand() % l_pvt_net->seed_aliases_count;
                         dap_chain_node_addr_t *l_remote_addr = dap_chain_node_alias_find(l_net, l_pvt_net->seed_aliases[i]);
                         dap_chain_node_info_t *l_remote_node_info = dap_chain_node_info_read(l_net, l_remote_addr);
                         dap_chain_node_info_t *l_link_node_info = DAP_NEW_Z(dap_chain_node_info_t);
-                        int res = dap_dns_client_get_addr(l_remote_node_info->hdr.ext_addr_v4.s_addr, l_net->pub.name, l_link_node_info);
+                        int res = 0;//dap_dns_client_get_addr(l_remote_node_info->hdr.ext_addr_v4.s_addr, l_net->pub.name, l_link_node_info);
+                        memcpy(l_link_node_info, l_remote_node_info, sizeof(dap_chain_node_info_t));
                         DAP_DELETE(l_remote_node_info);
                         if (res) {
                             DAP_DELETE(l_link_node_info);
                         } else {
                             l_pvt_net->links_info = dap_list_append(l_pvt_net->links_info, l_link_node_info);
                         }
+                        if (l_pvt_net->state_target == NET_STATE_OFFLINE) {
+                            l_pvt_net->state = NET_STATE_OFFLINE;
+                            break;
+                        }
                     }
                 } break;
             }
-            if (l_pvt_net->state_target > NET_STATE_LINKS_PREPARE) {
-                if (l_pvt_net->links_info) { // If links are present
-                    l_pvt_net->state = NET_STATE_LINKS_CONNECTING;
-                    log_it(L_DEBUG, "Prepared %u links, start to establish them", dap_list_length(l_pvt_net->links_info));
-                } else {
-                    log_it(L_WARNING, "No links for connecting, try again to find it");
-                    struct timespec l_sleep = {3, 0};
-                    nanosleep(&l_sleep, NULL);
-                }
-            }else {
-                log_it(L_WARNING, "Target state is NET_STATE_LINKS_PREPARE? Realy?");
+            if (l_pvt_net->state_target != NET_STATE_OFFLINE) {
+                l_pvt_net->state = NET_STATE_LINKS_CONNECTING;
+                log_it(L_DEBUG, "Prepared %u links, start to establish them", dap_list_length(l_pvt_net->links_info));
+            } else {
                 l_pvt_net->state = l_pvt_net->state_target = NET_STATE_OFFLINE;
             }
         } break;
@@ -428,8 +426,10 @@ static int s_net_states_proc(dap_chain_net_t * l_net)
                 }
             }
             if (l_pvt_net->links) { // We have at least one working link
-                l_pvt_net->state = NET_STATE_LINKS_ESTABLISHED;
+                l_pvt_net->state = NET_STATE_SYNC_GDB;
             } else { // Try to find another links
+                struct timespec l_sleep = {3, 0};
+                nanosleep(&l_sleep, NULL);
                 l_pvt_net->state = NET_STATE_OFFLINE;
             }
         } break;