diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
index ed5ad4ceeda1d93d552431630d4d9914259607bc..6b424bfa355db927ee52feee88147573b1ff687e 100644
--- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c
+++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
@@ -1082,6 +1082,11 @@ static void s_check_db_callback_fee_collect (dap_global_db_context_t *a_global_d
     dap_chain_cs_blocks_t *l_blocks = DAP_CHAIN_CS_BLOCKS(l_chain);
     dap_list_t *l_block_list = NULL;
     l_block_cache = dap_chain_block_cs_cache_get_by_hash(l_blocks, &l_arg->block_hash);
+    if(!l_block_cache)
+    {
+        log_it(L_WARNING, "The block_cache is empty");
+        return;
+    }
     dap_list_t *l_list_used_out = dap_chain_block_get_list_tx_cond_outs_with_val(l_chain->ledger,l_block_cache,&l_value_out_block);
     if(!l_list_used_out)
     {
@@ -1150,6 +1155,7 @@ static void s_session_round_finish(dap_chain_esbocs_session_t *a_session, dap_ch
     bool l_cs_debug = PVT(a_session->esbocs)->debug;
     dap_chain_t *l_chain = a_session->chain;
     uint16_t l_cs_level = PVT(a_session->esbocs)->min_validators_count;
+    dap_hash_fast_t l_precommit_candidate_hash = {0};
 
     if (!dap_hash_fast_compare(&a_session->cur_round.attempt_candidate_hash, &l_store->candidate_hash)) {
         char *l_current_candidate_hash_str = dap_chain_hash_fast_to_str_new(&a_session->cur_round.attempt_candidate_hash);
@@ -1200,6 +1206,7 @@ static void s_session_round_finish(dap_chain_esbocs_session_t *a_session, dap_ch
         DAP_DELETE(l_finish_block_hash_str);
     }
 
+    memcpy(&l_precommit_candidate_hash, &l_store->precommit_candidate_hash, sizeof(dap_hash_fast_t));
     bool l_compare = dap_hash_fast_compare(&l_store->candidate_hash, &(PVT(a_session->esbocs)->candidate_hash));
     if(s_session_candidate_to_chain(a_session, &l_store->precommit_candidate_hash, l_store->candidate, l_store->candidate_size) &&
             l_compare && PVT(a_session->esbocs)->fee_addr) {
@@ -1208,7 +1215,7 @@ static void s_session_round_finish(dap_chain_esbocs_session_t *a_session, dap_ch
         dap_chain_addr_t * addr = DAP_NEW_Z(dap_chain_addr_t);
         *addr = *PVT(a_session->esbocs)->fee_addr;
         tmp->a_addr_to = addr;
-        tmp->block_hash = l_store->precommit_candidate_hash;
+        tmp->block_hash = l_precommit_candidate_hash;
         tmp->chain = l_chain;
         tmp->value_fee = PVT(a_session->esbocs)->minimum_fee;
         tmp->fee_need_cfg = PVT(a_session->esbocs)->fee_coll_set;