diff --git a/modules/channel/chain-voting/dap_stream_ch_chain_voting.c b/modules/channel/chain-voting/dap_stream_ch_chain_voting.c
index ae0a55b0ce5cd90e292338ed4ad8596c051431cc..d389fa1cb00084ce09ba51002607e58aa95f5768 100644
--- a/modules/channel/chain-voting/dap_stream_ch_chain_voting.c
+++ b/modules/channel/chain-voting/dap_stream_ch_chain_voting.c
@@ -64,7 +64,7 @@ static void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg);
 static void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg);
 
 static dap_timerfd_t * s_packet_in_callback_timer = NULL; 
-static s_is_inited = false;
+static bool s_is_inited = false;
 
 //static int s_cli_voting(int argc, char ** argv, char **a_str_reply);
 
diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c
index c16db6665558cd5395647cf781beb7c4a885950b..9fdd7c08f09c3537f6ac2061963ace238f7460a3 100644
--- a/modules/channel/chain/dap_stream_ch_chain.c
+++ b/modules/channel/chain/dap_stream_ch_chain.c
@@ -734,8 +734,9 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
                     dap_store_obj_free(l_read_obj, 1);
                 }
             }
+            time_t l_timestamp_del = global_db_gr_del_get_timestamp(l_obj->group, l_obj->key);
             // check the applied object newer that we have stored or erased
-            if (l_obj->timestamp > global_db_gr_del_get_timestamp(l_obj->group, l_obj->key) &&
+            if (l_obj->timestamp > l_timestamp_del &&
                     l_obj->timestamp > l_timestamp_cur &&
                     (l_obj->type != 'd' || l_obj->timestamp > l_limit_time)) {
                 l_apply = true;
@@ -744,32 +745,35 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
                 char l_ts_str[50];
                 dap_time_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_store_obj[i].timestamp);
                 log_it(L_DEBUG, "Unpacked log history: type='%c' (0x%02hhX) group=\"%s\" key=\"%s\""
-                        " timestamp=\"%s\" value_len=%zu  ",
-                        (char ) l_store_obj[i].type, l_store_obj[i].type, l_store_obj[i].group,
+                        " timestamp=\"%s\" value_len=%zu",
+                        (char )l_store_obj[i].type, l_store_obj[i].type, l_store_obj[i].group,
                         l_store_obj[i].key, l_ts_str, l_store_obj[i].value_len);
             }
             if (!l_apply) {
+                if (l_obj->timestamp <= l_timestamp_cur)
+                    log_it(L_WARNING, "New data not applied, because newly object exists");
+                if (l_obj->timestamp <= l_timestamp_del)
+                    log_it(L_WARNING, "New data not applied, because newly object is deleted");
+                if ((l_obj->type == 'd' && l_obj->timestamp <= l_limit_time))
+                    log_it(L_WARNING, "New data not applied, because object is too old");
                 continue;
             }
-
             // apply received transaction
             dap_chain_t *l_chain = dap_chain_find_by_id(l_sync_request->request_hdr.net_id, l_sync_request->request_hdr.chain_id);
 
-            //
-            // if chain is zero, it can be on of GDB group
-            // 
+            // if chain is zero, it's name can be part of GDB group name
             if (!l_chain)
                  l_chain = dap_chain_get_chain_from_group_name(l_sync_request->request_hdr.net_id, l_obj->group);
 
             if(l_chain) {
+                log_it(L_WARNING, "New data goes to GDB chain");
                 if(l_chain->callback_add_datums_with_group){
                     const void * restrict l_store_obj_value = l_store_obj[i].value;
                     l_chain->callback_add_datums_with_group(l_chain,
                             (dap_chain_datum_t** restrict) &l_store_obj_value, 1,
                             l_store_obj[i].group);
                 }
-            } else 
-            {
+            } else {
                 // save data to global_db
                 if(!dap_chain_global_db_obj_save(l_obj, 1)) {
                     struct sync_request *l_sync_req_err = DAP_DUP(l_sync_request);