 
         chain.fail (err) ->
           console.error "#{logPrefix} Something got borked: #{err.stack || util.inspect(err, depth: null)}"
+          Q.reject err

  userData

ensureAuthToken = (robot, msg, userData, logPrefix) ->
  if userData.authValue #and moment().isBefore(userData.authExpires)
    Q.resolve()
  else
    console.log "#{logPrefix} Calling RadBus API to get the RadBus API's Google API client ID & secret..."

        console.log "#{logPrefix} Done. Refresh token expires in #{authTokenInfo.expires_in} seconds."

        userData.authValue = "#{authTokenInfo.token_type} #{authTokenInfo.access_token}"
        robot.brain.save()

        Q.resolve()
