           .then =>
             client.get '/me'
               .then ([user]) =>
-                console?.log 'Session exists for', user.display_name
+                console?.info 'Session exists for', user.display_name
                 user
 
           .catch ->
-            # If you can't get a bearer token, nobody's signed in.
+            # If you can't get a bearer token, nobody's signed in. This isn't an error.
+            console?.info 'No active session'
             null
 
     @currentUser

      makeHTTPRequest 'POST', config.host + '/users/sign_out', data, deleteOverrideJSONHeaders
        .then =>
          @_deleteBearerToken()
          null

        .catch (request) ->
          try {errors} = JSON.parse request.responseText
          console?.log 'Failed to sign out', errors
          Promise.reject errors

    @currentUser

  _getBearerToken: ->
    console?.log 'Getting bearer token'
    if @bearerToken
      console?.info 'Already had a bearer token', @bearerToken
      Promise.resolve @bearerToken
    else
      data =
        grant_type: 'password'
        client_id: config.clientAppID

      makeHTTPRequest 'POST', config.host + '/oauth/token', data, JSON_HEADERS
        .then (request) =>
          response = JSON.parse request.responseText
          @bearerToken = response.access_token
          client.headers['Authorization'] = "Bearer #{@bearerToken}"
          console?.info 'Got bearer token', @bearerToken
          @bearerToken

        .catch (request) ->
