diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index e1153727d..db83f4621 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -1163,15 +1163,20 @@ export const LoginDialog = GObject.registerClass({ } async _onSessionOpened(client, serviceName, sessionId) { - if (sessionId) { - const conflictingSession = await this._findConflictingSession(sessionId); - if (conflictingSession) { - this._showConflictingSessionDialog(serviceName, conflictingSession); - return; + try { + if (sessionId) { + const conflictingSession = await this._findConflictingSession(sessionId); + if (conflictingSession) { + this._showConflictingSessionDialog(serviceName, conflictingSession); + return; + } } - } - this._authPrompt.finish(() => this._startSession(serviceName)); + this._authPrompt.finish(() => this._startSession(serviceName)); + } catch (error) { + logError(error, `Failed to start session '${sessionId}'`); + this._authPrompt.reset(); + } } _waitForItemForUser(userName) {