         df.promise.fin -> delete importRequestMap[importId]
         Logger.info 'Import request started', importId
       Promises.runSync ->
-        promise = EntityImporter.fromAsset(args)
+        promise = EntityImporter.fromAsset(args).then (modelMap) ->
+          # Return just a count of the number of imported models.
+          _.size(modelMap)
         if df?
           df.resolve(promise)
           # Cancelling the import should return the import method.

      model = @_mapEntity(model, args) ? model
      if args.forEachEntity
        model = args.forEachEntity.call(EntityImporter, {entity: model, c3ml: c3ml}) ? model

      callback = (err, insertId) ->
        if err


    modelsPromise = Q.all(modelDfs)
    modelsPromise.fail(df.reject)
    modelsPromise.then Meteor.bindEnvironment (models) ->
      modelMap = {}
      # modelIds also includes null values for entities which were skipped and not inserted.
      models = _.filter models, (model) -> model?
      importCount = 0
      _.each models, (model) ->
        modelMap[model._id] = model
        importCount++

      requirejs ['atlas/model/GeoPoint'], Meteor.bindEnvironment (GeoPoint) ->
        resolve = -> df.resolve(modelMap)
        Logger.info 'Imported ' + importCount + ' entities'
        missingParentIds = _.keys missingParentsIdMap
        if missingParentIds.length > 0
