From dcd6786ca54a86acc7296163bd7ba96bac09a96f Mon Sep 17 00:00:00 2001 From: h Date: Wed, 14 Oct 2026 05:25:48 +0200 Subject: [PATCH] fix(backend): avatar job ends without a crash when telegram does not know the owner --- .../userbot/modules/jobs/handlers/fetch_avatar.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py b/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py index 8177e11..1a3df80 100644 --- a/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py +++ b/backend/src/userbot/modules/jobs/handlers/fetch_avatar.py @@ -1,5 +1,12 @@ from pyrogram import Client -from pyrogram.errors import FileIdInvalid, FileReferenceExpired, FileReferenceInvalid +from pyrogram.errors import ( + ChannelInvalid, + ChannelPrivate, + FileIdInvalid, + FileReferenceExpired, + FileReferenceInvalid, + PeerIdInvalid, +) from pyrogram.types import ChatPhoto from userbot.modules.avatars.repository import get_avatar_file, mark_avatar_downloaded @@ -8,10 +15,14 @@ from userbot.modules.jobs.context import JobContext from userbot.modules.jobs.registry import register STALE_FILE_ID = (FileIdInvalid, FileReferenceExpired, FileReferenceInvalid) +UNKNOWN_OWNER = (PeerIdInvalid, ChannelInvalid, ChannelPrivate) async def _fresh_file_id(client: Client, owner_id: int, unique_id: str) -> str | None: - chat = await client.get_chat(owner_id) + try: + chat = await client.get_chat(owner_id) + except UNKNOWN_OWNER: + return None photo = chat.photo if chat else None if photo and photo.big_photo_unique_id == unique_id: return photo.big_file_id