Passagem de mensagem de extensão do Chrome [duplicado]

Esta pergunta já tem uma resposta aqui:

Passagem de mensagem de extensão do Chrome: resposta não enviada 3 respostas

Eu tenho uma extensão do Chrome que está enviando uma mensagem de login:

chrome.runtime.sendMessage data, (response) ->
  debugger
  if response.api_key
    $("body").fadeOut 1000, -> window.close()

  else
    App.Ui.clearForm()
    App.Ui.showErrorMessage()

No entanto, o retorno de chamada nunca é atingido:

chrome.runtime.onMessage.addListener (request, sender, sendResponse) ->
  if request and request.action is "login"

    $.ajax(
      type: "POST"
      url: App.Config.authUrl()
      data: request.data
      dataType: "json"
    ).then( (data) ->

      App.Storage.saveSession(data.user)
      sendResponse(data.user)

    , (data) ->

      sendResponse(data)

    )

Estou fazendo algo errado?

questionAnswers(1)

yourAnswerToTheQuestion