diff --git a/matrix_appservice_kakaotalk/kt/client/client.py b/matrix_appservice_kakaotalk/kt/client/client.py index b4379da..772fb3e 100644 --- a/matrix_appservice_kakaotalk/kt/client/client.py +++ b/matrix_appservice_kakaotalk/kt/client/client.py @@ -109,6 +109,10 @@ class Client: await cls._rpc_client.connect() await cls._rpc_client.wait_for_disconnection() + @classmethod + def wait_for_connection(cls) -> Awaitable[None]: + return cls._rpc_client.wait_for_connection() + @classmethod def stop_cls(cls) -> None: """Stop and disconnect from the Node backend.""" diff --git a/matrix_appservice_kakaotalk/user.py b/matrix_appservice_kakaotalk/user.py index c6dd586..c7b7912 100644 --- a/matrix_appservice_kakaotalk/user.py +++ b/matrix_appservice_kakaotalk/user.py @@ -388,6 +388,9 @@ class User(DBUser, BaseUser): ) -> None: try: if not await self._load_session(is_startup=is_startup) and self.has_state: + self.log.debug("reload_session failure: wait for connection to Node module before prompting for manual login") + await Client.wait_for_connection() + self.log.debug("reload_session failure: now connected to Node module") await self.send_bridge_notice( "Logged out of KakaoTalk. Must use the `login` command to log back in.", important=True,