       ledger.tasks.TransactionConsumerTask.instance.pushTransactions(result['txs'])
       ledger.tasks.TransactionConsumerTask.instance.pushCallback =>
         d.resolve({hasNext, block})
+    .fail (er) ->
+      er.block = block
+      throw er
     d.promise
 
   _recoverAddresses: (root, from, to, blockHash, syncToken) ->

      d.resolve()
    d.promise

  _handlerReorgs: ->

  ###
  onStart: () ->

      iterate(0)
    .fail (er) ->
      # Handle reorgs
      e "Failure during synchro", er
      if er?.getStatusCode?() is 404
        @_handlerReorgs(savedState, er.block).then () =>
          @_performRecovery()
      else
        throw er

  _recoverAccount: (accountIndex, savedState, syncToken) ->
    savedAccountState = savedState["account_#{accountIndex}"] or {}
