Telethon icon indicating copy to clipboard operation
Telethon copied to clipboard

telethon.errors.rpcerrorlist.LimitInvalidError while iter_download

Open lcipria opened this issue 3 weeks ago • 3 comments

Code that causes the issue

client.iter_download(file = message, limit = 1, offset = 983040, request_size = 131072)

Expected behavior

iterate for 1 chunk containing the 131072 bytes after the first 983040 from the file in the message

Actual behavior

telethon.errors.rpcerrorlist.LimitInvalidError: An invalid limit was provided.

Traceback

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <listcomp>
  File "/home/luciano/.local/lib/python3.10/site-packages/telethon/requestiter.py", line 87, in __next__
    return self.client.loop.run_until_complete(self.__anext__())
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/luciano/.local/lib/python3.10/site-packages/telethon/requestiter.py", line 74, in __anext__
    if await self._load_next_chunk():
  File "/home/luciano/.local/lib/python3.10/site-packages/telethon/client/downloads.py", line 66, in _load_next_chunk
    cur = await self._request()
  File "/home/luciano/.local/lib/python3.10/site-packages/telethon/client/downloads.py", line 76, in _request
    result = await self.client._call(self._sender, self.request)
  File "/home/luciano/.local/lib/python3.10/site-packages/telethon/client/users.py", line 87, in _call
    result = await future
telethon.errors.rpcerrorlist.LimitInvalidError: An invalid limit was provided. See https://core.telegram.org/api/files#downloading-files (caused by GetFileRequest)

Telethon version

1.36.0

Python version

3.10.12

Operating system (including distribution name and version)

Ubuntu 22.04.4 LTS

Other details

as documentation:

  • The parameter offset must be divisible by 4 KB.
>>> (983040 / 4096).is_integer()
True
  • The parameter limit must be divisible by 4 KB.
  • 1048576 (1 MB) must be divisible by limit.

P.S. usingoffset = 1048576 it works

client.iter_download(file = message, limit = 1, offset = 1048576, request_size = 131072)

Checklist

  • [X] The error is in the library's code, and not in my own.
  • [X] I have searched for this issue before posting it and there isn't an open duplicate.
  • [X] I ran pip install -U https://github.com/LonamiWebs/Telethon/archive/v1.zip and triggered the bug in the latest version.

lcipria avatar Jun 14 '24 08:06 lcipria