Skip to content

Commit 68158d1

Browse files
committed
Add nicer error in case of unknown constructors
1 parent c87177e commit 68158d1

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

pyrogram/raw/core/tl_object.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,16 @@ class TLObject:
3030

3131
@classmethod
3232
def read(cls, data: BytesIO, *args: Any) -> Any:
33-
return cast(TLObject, objects[int.from_bytes(data.read(4), "little")]).read(data, *args)
33+
try:
34+
return cast(TLObject, objects[int.from_bytes(data.read(4), "little")]).read(data, *args)
35+
except KeyError as e:
36+
left = data.read()
37+
38+
left = [left[i:i + 64] for i in range(0, len(left), 64)]
39+
left = [[left[i:i + 8] for i in range(0, len(left), 8)] for left in left]
40+
left = "\n".join(" ".join(x for x in left) for left in left)
41+
42+
raise ValueError(f"Unknown constructor found: {hex(e.args[0])}\n{left}")
3443

3544
def write(self, *args: Any) -> bytes:
3645
pass

0 commit comments

Comments
 (0)