Checklist
Description
When downloading video files, especially large ones, it often happens that the downloaded file size is 0, or the downloaded file size is incorrect, or the download is incomplete.
Steps to reproduce
while(True):
file = await tiqu_user_app.download_media(message = msg)
if not os.path.exists(file):
continue
if os.path.getsize(file) == 0 or (msg.video and os.path.getsize(file) != msg.video.file_size):
if msg.video and os.path.getsize(file) != msg.video.file_size:
print(f"download fail,{os.path.getsize(file)}-{msg.video.file_size}")
elif os.path.getsize(file) == 0
print(f"retry:{retry}")
else:
break
Code example
Logs
[2026-01-14 23:19:24] Traceback (most recent call last):
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1140, in get_file
r = await session.invoke(
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:19:24] [Previous line repeated 2 more times]
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
raise e from None
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
return await self.send(query, timeout=timeout)
[2026-01-14 23:19:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
raise TimeoutError
[2026-01-14 23:19:24] TimeoutError
[2026-01-14 23:19:24] download fail,0-7159033
[5] Retrying "upload.GetFile" due to TimeoutError()
[5] Retrying "upload.GetFile" due to TimeoutError()
[2026-01-14 23:20:24] Traceback (most recent call last):
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1176, in get_file
r = await session.invoke(
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:24] [Previous line repeated 2 more times]
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
raise e from None
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
return await self.send(query, timeout=timeout)
[2026-01-14 23:20:24] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
raise TimeoutError
[2026-01-14 23:20:24] TimeoutError
[2026-01-14 23:20:24] download fail,6291456-100196425
[5] Retrying "upload.GetFile" due to TimeoutError()
Unable to connect due to network issues: timed out
[2026-01-14 23:20:43] Traceback (most recent call last):
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/client.py", line 1176, in get_file
r = await session.invoke(
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 446, in invoke
return await self.invoke(query, retries - 1, timeout)
[2026-01-14 23:20:43] [Previous line repeated 2 more times]
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 439, in invoke
raise e from None
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 415, in invoke
return await self.send(query, timeout=timeout)
[2026-01-14 23:20:43] File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 378, in send
raise TimeoutError
[2026-01-14 23:20:43] TimeoutError
[2026-01-14 23:20:43] download fail,6291456-38338517
[5] Retrying "upload.GetFile" due to TimeoutError()
[5] Retrying "upload.GetFile" due to TimeoutError()
Checklist
pip3 install https://github.com/TelegramPlayground/pyrogram/archive/dev.zip --force-reinstalland reproduced the issue using the latest development versionDescription
When downloading video files, especially large ones, it often happens that the downloaded file size is 0, or the downloaded file size is incorrect, or the download is incomplete.
Steps to reproduce
Code example
Logs