   # notify user about unread plugins, only shown when any exists
   # @private
   notifyFailed_: ->
-    @getUnreadPluginNames().then (names) ->
-      if names.length > 0
-        content = "#{names.join(' ')} #{
+    @getUnreadPlugins().then (plugins) ->
+      unreadList = []
+      for plugin in plugins
+        unreadList.push plugin.stringName
+      if unreadList.length > 0
+        content = "#{unreadList.join(' ')} #{
           __ 'failed to load. Maybe there are some compatibility problems.'}"
         notify content,
           type: 'plugin error'

          task = plugins.map (plugin) =>
            new Promise (resolve) =>
              npm.commands.distTag ['ls', plugin.packageName], (err, distTag) =>
                latest = plugin.version
                if @config_.betaCheck && distTag.beta?
                  if semver.gt distTag.beta, latest
                    latest = distTag.beta
                    if semver.gt distTag.latest, latest
                      latest = distTag.latest
                else
                  if semver.gt distTag.latest, latest
                    latest = distTag.latest
                if semver.gt latest, plugin.version
                  outdatedPlugins.push plugin
                  index = @plugins_.indexOf(plugin)
                  @plugins_[index].isOutdated = true
                  @plugins_[index].lastestVersion = latest
                  outdatedList.push plugin.stringName
                resolve()
          Promise.all(task).then =>
            if isNotif
              content = "#{outdatedList.join(' ')} #{__ "have newer version. Please update your plugins."}"
              notify content,
                type: 'plugin update'


    plugin.isInstalled = true
    plugin.isOutdated = false
    if plugin.packageData?.version? && plugin.isRead
      plugin.version = plugin.packageData.version
    plugin.lastestVersion = plugin.version
    return plugin
