diff --git a/app/lib/indexer.ts b/app/lib/indexer.ts
index b5f1c47be1b391cf00f6e99e7fa3a77d46db7375..1985ef4f57c9cbffbbec02b45e85a09c79ec3f45 100644
--- a/app/lib/indexer.ts
+++ b/app/lib/indexer.ts
@@ -1981,11 +1981,13 @@ function txSourceUnlock(ENTRY:SindexEntry, source:SindexEntry, HEAD: DBHead) {
   const unlockParams:string[] = TransactionDTO.unlock2params(ENTRY.unlock || '')
   const unlocksMetadata:UnlockMetadata = {}
   const sigResult = TransactionDTO.fromJSONObject(tx).getTransactionSigResult()
-  if (source.conditions.match(/CLTV/)) {
-    unlocksMetadata.currentTime = HEAD.medianTime;
-  }
-  if (source.conditions.match(/CSV/)) {
-    unlocksMetadata.elapsedTime = HEAD.medianTime - source.written_time;
+  if(source.conditions) {
+    if (source.conditions.match(/CLTV/)) {
+      unlocksMetadata.currentTime = HEAD.medianTime;
+    }
+    if (source.conditions.match(/CSV/)) {
+      unlocksMetadata.elapsedTime = HEAD.medianTime - source.written_time;
+    }
   }
   return txunlock(source.conditions, unlockParams, sigResult, unlocksMetadata)
 }
diff --git a/app/lib/rules/local_rules.ts b/app/lib/rules/local_rules.ts
index d2f62c6c80fd36aeb09b1827c15920fd3fadca4c..ba102d70d3dbb2c18cc04d3ea4f201d08cade2dd 100644
--- a/app/lib/rules/local_rules.ts
+++ b/app/lib/rules/local_rules.ts
@@ -391,7 +391,8 @@ export const LOCAL_RULES_FUNCTIONS = {
     //
     const allowedMax = block.medianTime > 1519862400 ? CommonConstants.BLOCK_MAX_TX_CHAINING_DEPTH : 0
     if (max > allowedMax) {
-      throw "The maximum transaction chaining length per block is " + CommonConstants.BLOCK_MAX_TX_CHAINING_DEPTH
+      return false
+      //throw "The maximum transaction chaining length per block is " + CommonConstants.BLOCK_MAX_TX_CHAINING_DEPTH
     }
     return true
   }
@@ -434,17 +435,17 @@ function checkSingleMembershipSignature(ms:any) {
   return verify(ms.getRaw(), ms.signature, ms.issuer);
 }
 
-function checkBunchOfTransactions(transactions:TransactionDTO[], conf:ConfDTO, options?:{ dontCareAboutChaining?:boolean }):Promise<boolean>{
+async function checkBunchOfTransactions(transactions:TransactionDTO[], conf:ConfDTO, options?:{ dontCareAboutChaining?:boolean }):Promise<boolean>{
   const block:any = { transactions, identities: [], joiners: [], actives: [], leavers: [], revoked: [], excluded: [], certifications: [] };
   const index = Indexer.localIndex(block, conf)
   let local_rule = LOCAL_RULES_FUNCTIONS;
   return Promise.all([
-    local_rule.checkTxLen(block),
-    local_rule.checkTxIssuers(block),
-    local_rule.checkTxSources(block),
-    local_rule.checkTxRecipients(block),
-    local_rule.checkTxAmounts(block),
-    local_rule.checkTxSignature(block),
+    await local_rule.checkTxLen(block),
+    await local_rule.checkTxIssuers(block),
+    await local_rule.checkTxSources(block),
+    await local_rule.checkTxRecipients(block),
+    await local_rule.checkTxAmounts(block),
+    await local_rule.checkTxSignature(block),
     local_rule.checkMaxTransactionChainingDepth(block, conf, index),
   ]).then(function(values) {
     for (const value of values) {
diff --git a/app/modules/prover/lib/blockGenerator.ts b/app/modules/prover/lib/blockGenerator.ts
index 5ed9d9b413c443d8271b03b37a8eb00a495ccbaf..16edbba7ae2c2d1c631f22bdbd5cc5b07b16dc38 100644
--- a/app/modules/prover/lib/blockGenerator.ts
+++ b/app/modules/prover/lib/blockGenerator.ts
@@ -120,10 +120,11 @@ export class BlockGenerator {
           await GLOBAL_RULES_HELPERS.checkSingleTransaction(tx, nextBlockWithFakeTimeVariation, this.conf, this.dal, ALSO_CHECK_PENDING_TXS),
           await GLOBAL_RULES_HELPERS.checkTxBlockStamp(tx, this.dal)
         ]).then(function(values) {
-          if (values[0] && values[1])
-          transactions.push(tx);
-          passingTxs.push(tx);
-          logger.info('Transaction %s added to block', tx.hash);
+          if (values[0] && values[1]) {
+            transactions.push(tx);
+            passingTxs.push(tx);
+            logger.info('Transaction %s added to block', tx.hash);
+          }
         }).catch (function(err) {
           logger.error(err);
           const currentNumber = (current && current.number) || 0;