diff --git a/mautrix_telegram/portal/metadata.py b/mautrix_telegram/portal/metadata.py index e5f3ccea..47f94ddd 100644 --- a/mautrix_telegram/portal/metadata.py +++ b/mautrix_telegram/portal/metadata.py @@ -521,21 +521,24 @@ class PortalMetadata(BasePortal, ABC): return self.log.debug("Updating info") - if not entity: - entity = await self.get_entity(user) - self.log.debug(f"Fetched data: {entity}") - changed = False + try: + if not entity: + entity = await self.get_entity(user) + self.log.debug(f"Fetched data: {entity}") + changed = False - if self.peer_type == "channel": - changed = await self._update_username(entity.username) or changed + if self.peer_type == "channel": + changed = await self._update_username(entity.username) or changed - if hasattr(entity, "about"): - changed = self._update_about(entity.about) or changed + if hasattr(entity, "about"): + changed = self._update_about(entity.about) or changed - changed = await self._update_title(entity.title) or changed + changed = await self._update_title(entity.title) or changed - if isinstance(entity.photo, ChatPhoto): - changed = await self._update_avatar(user, entity.photo) or changed + if isinstance(entity.photo, ChatPhoto): + changed = await self._update_avatar(user, entity.photo) or changed + except Exception: + self.log.exception(f"Failed to update info from source {user.tgid}") if changed: self.save() diff --git a/mautrix_telegram/puppet.py b/mautrix_telegram/puppet.py index cb3c9d9f..f4f5d867 100644 --- a/mautrix_telegram/puppet.py +++ b/mautrix_telegram/puppet.py @@ -234,9 +234,12 @@ class Puppet(CustomPuppetMixin): self.username = info.username changed = True - changed = await self.update_displayname(source, info) or changed - if isinstance(info.photo, UserProfilePhoto): - changed = await self.update_avatar(source, info.photo) or changed + try: + changed = await self.update_displayname(source, info) or changed + if isinstance(info.photo, UserProfilePhoto): + changed = await self.update_avatar(source, info.photo) or changed + except Exception: + self.log.exception(f"Failed to update info from source {source.tgid}") self.is_bot = info.bot