   latest[plugin.packageName] = plugin.version
   delete installTargets[plugin.packageName]
 
+for fail, index in fails
+  delete installTargets[path.basename fail]
+
 installStatus = []
 for installTarget of installTargets
   # 0: not installed 1: installing 2: installed
   installStatus.push 0
+
+failStatus = []
+for fail, index in fails
+  # 0: broken 1: installing 2: installed 3: removing 4: removed
+  failStatus.push 0
 
 npmConfig = {
   prefix: "#{PLUGIN_PATH}",

  try
    test = require plugin
  catch error
    fail = path.basename plugin
    fails.push plugin
    if packages[fail]?

          </Col>
      }
      {
        packages = fs.readJsonSync path.join ROOT, 'assets', 'data', 'plugin.json'
        for fail, index in fails
          fail = path.basename fail
          plugin = {}
          if packages[fail]?
            plugin.displayName =
              <span><FontAwesome name={packages[fail]['icon']} /> {packages[fail][window.language]} </span>
            plugin.author = packages[fail]['author']
            plugin.link = packages[fail]['link']
            plugin.description = packages[fail]["des#{window.language}"]
            plugin.version = __ 'unknown'
          else
            plugin.displayName =
              <span><FontAwesome name='ban' /> {fail} </span>
            plugin.author = __ 'unknown'
            plugin.link = 'https://github.com/poooi'
            plugin.version = __ 'unknown'
            plugin.description = __ 'unknown'
          <Col key={index} xs={12} style={marginBottom: 8}>
            <Col xs={12} className='div-row'>
              <span style={fontSize: '150%'}>{plugin.displayName} </span>
              <span style={paddingTop: 2}> @<span onClick={@handleClickAuthorLink.bind @, plugin.link}>{plugin.author}</span></span>
              <div style={paddingTop: 2, marginLeft: 'auto'}>Version {plugin.version || '1.0.0'}</div>
            </Col>
            <Col xs={12} style={marginTop: 4}>
              <Col xs={5}>{plugin.description}</Col>
              <Col xs={7} style={padding: 0}>
                <div style={marginLeft: 'auto'}>
                  <ButtonGroup bsSize='small' style={width: '100%'}>
                    <Button bsStyle='info'
                            disabled=true
                            onClick={(e)=> e.preventDefault}
                            style={width: "33%"}
                            className="plugin-control-button">
                      <FontAwesome name="ban" />
                      {__ 'Error'}
                    </Button>
                    <Button bsStyle='primary'
                            disabled={@state.failStatus[index] != 0}
                            onClick={@handleReinstall.bind @, index, @handleReinstallComplete}
                            style={width: "33%"}
                            className="plugin-control-button">
                      <FontAwesome name={
                                     switch @state.failStatus[index]
                                       when 1
                                         "spinner"
                                       when 2
                                         "check"
                                       else
                                         "download"
                                   }
                                   pulse={@state.failStatus[index] == 1}/>
                      {
                        switch @state.failStatus[index]
                          when 1
                             __ "Installing"
                          when 2
                             __ "Installed"
                          else
                            __ "Reinstall"
                      }
                    </Button>
                    <Button bsStyle='danger'
                            onClick={@handleRemoveBroken.bind @, index, @handleRemoveBrokenComplete}
                            disabled={@state.failStatus[index] != 0}
                            style={width: "33%"}
                            className="plugin-control-button">
                      <FontAwesome name={if @state.failStatus[index] == 0 then 'trash' else 'trash-o'} />
                      {
                        switch @state.failStatus[index]
                          when 3
                             __ "Removing"
                          when 4
                             __ "Removed"
                          else
                             __ "Remove"
                      }
                    </Button>
                  </ButtonGroup>
                </div>
              </Col>
            </Col>
          </Col>
      }
      {
        index = -1
        for installTarget of installTargets
          index++
