         @_createOrUpdate productsToProcess, queriedEntries
       .then (results) =>
         _.each results, (r) =>
-          @_handleProcessResponse(r)
+          if r.isFulfilled()
+            @_handleFulfilledResponse(r)
+          else if r.isRejected()
+            @_handleErrorResponse(r.reason())
+
         Promise.resolve(@_summary)
     , { concurrency: 1 } # run 1 batch at a time
 

        Error not logged as error limit of #{@errorLimit} has reached.
      "

  _handleProcessResponse: (res) =>
    if res.isFulfilled()
      @_handleFulfilledResponse(res)
    else if res.isRejected()
      error = serializeError res.reason()

      @_summary.failed++
      if @errorDir
        errorFile = path.join(@errorDir, "error-#{@_summary.failed}.json")
        fs.outputJsonSync(errorFile, error, {spaces: 2})

      if _.isFunction(@errorCallback)
        @errorCallback(error, @logger)
      else
        @logger.error "Error callback has to be a function!"

  _handleFulfilledResponse: (res) =>
    switch res.value().statusCode

    @publishingStrategy = options.publishingStrategy or false
    @variantReassignmentOptions = options.variantReassignmentOptions or {}
    @reassignmentService = new Reassignment(@client, @logger,
      (error) => @_handleErrorResponse(error),
      @variantReassignmentOptions.retainExistingData)

    @_configErrorHandling(options)
