diff --git a/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart b/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart index 5453516490..0a14650b4f 100644 --- a/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart +++ b/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart @@ -166,20 +166,25 @@ class AutoHomeserverPickerController extends State ); final loginToken = getQueryParameter('loginToken'); if (loginToken != null || loginToken?.isNotEmpty == true) { - Matrix.of(context).loginType = LoginType.mLoginToken; - Matrix.of(context).loginHomeserverSummary = - await Matrix.of(context).getLoginClient().checkHomeserver( - Uri.parse( - AppConfig.homeserver, - ), - ); - await TwakeDialog.showFutureLoadingDialogFullScreen( - future: () => Matrix.of(context).getLoginClient().login( - LoginType.mLoginToken, - token: loginToken, - initialDeviceDisplayName: PlatformInfos.clientName, - ), - ); + try { + Matrix.of(context).loginType = LoginType.mLoginToken; + Matrix.of(context).loginHomeserverSummary = + await Matrix.of(context).getLoginClient().checkHomeserver( + Uri.parse( + AppConfig.homeserver, + ), + ); + await TwakeDialog.showFutureLoadingDialogFullScreen( + future: () => Matrix.of(context).getLoginClient().login( + LoginType.mLoginToken, + token: loginToken, + initialDeviceDisplayName: PlatformInfos.clientName, + ), + ); + } catch (e) { + autoHomeserverPickerUIState.value = + AutoHomeServerPickerFailureState(); + } _resetLocationPath(); return; }