Repository navigation
Critical bug: obj.pop in RichText.de_json() fails as it got a list instead of a dictionary #2634
Copy link
Copy link
Closed
Description
This is the rich message that causes the error:
"rich_message": {
"blocks": [
{
"type": "paragraph",
"text": [
"The new ",
{
"type": "url",
"text": "Akhmad Kadyrov",
"url": "https://en.wikipedia.org/wiki/Akhmad_Kadyrov"
},
" Mosque, completed in 2014, is the largest mosque in Israel and was built with money donated by the ",
{
"type": "url",
"text": "Chechen",
"url": "https://en.wikipedia.org/wiki/Chechnya"
},
" government.",
{
"type": "url",
"text": {
"type": "superscript",
"text": "[56]"
},
"url": "https://en.wikipedia.org/wiki/Abu_Ghosh#cite_note-56"
}
]
}
]
}Full traceback:
2026-10-17 02:13:26,810 (__init__.py:1175 MainThread) ERROR - TeleBot: "Infinity polling exception: pop expected at most 1 argument, got 2"
ERROR: 2026-10-17 02:13:26,810 - Infinity polling exception: pop expected at most 1 argument, got 2
2026-10-17 02:13:26,811 (__init__.py:1177 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 1170, in infinity_polling
self.polling(non_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 1258, in polling
self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 1333, in __threaded_polling
raise e
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 1294, in __threaded_polling
polling_thread.raise_exceptions()
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/util.py", line 117, in raise_exceptions
raise self.exception_info
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/util.py", line 99, in run
task(*args, **kwargs)
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 696, in __retrieve_updates
updates = self.get_updates(offset=(self.last_update_id + 1),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/__init__.py", line 671, in get_updates
return [types.Update.de_json(ju) for ju in json_updates]
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 218, in de_json
message = Message.de_json(obj.get('message'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 1739, in de_json
opts['rich_message'] = RichMessage.de_json(obj['rich_message'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 16582, in de_json
obj['blocks'] = [RichBlock.de_json(block) for block in obj['blocks']]
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 15838, in de_json
return RichBlockParagraph.de_json(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 15911, in de_json
obj['text'] = RichText.de_json(obj['text'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 14703, in de_json
return [RichText.de_json(item) for item in json_string]
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 14734, in de_json
return RichTextUrl.de_json(obj)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 15240, in de_json
obj['text'] = RichText.de_json(obj['text'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 14724, in de_json
return RichTextSuperscript.de_json(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 15073, in de_json
obj['text'] = RichText.de_json(obj['text'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/render/project/src/.venv/lib/python3.12/site-packages/telebot/types.py", line 14706, in de_json
type = obj.pop('type', None)
^^^^^^^^^^^^^^^^^^^^^
TypeError: pop expected at most 1 argument, got 2
"
Metadata
Metadata
Assignees
Labels
No labels
Activity
Badiboy commentedon Oct 17, 2026
Fixed here.
#2635
Treat RichText strings as JSON only when they parse to an object
hankertrix commentedon Oct 17, 2026
Please cut a release as soon as possible, thank you.
Badiboy commentedon Oct 17, 2026
Update pushed to pypi
hankertrix commentedon Oct 17, 2026
Thank you!