diff --git a/telethon/extensions/binary_reader.py b/telethon/extensions/binary_reader.py index 6770115c0..43232b0b9 100644 --- a/telethon/extensions/binary_reader.py +++ b/telethon/extensions/binary_reader.py @@ -23,6 +23,7 @@ def __init__(self, data=None, stream=None): 'Either bytes or a stream must be provided') self.reader = BufferedReader(self.stream) + self._last = None # Should come in handy to spot -404 errors # region Reading @@ -57,8 +58,12 @@ def read(self, length): """Read the given amount of bytes""" result = self.reader.read(length) if len(result) != length: - raise BufferError('No more data left to read') + raise BufferError( + 'No more data left to read (need {}, got {}: {}); last read {}' + .format(length, len(result), repr(result), repr(self._last)) + ) + self._last = result return result def get_bytes(self):