ERROR:asyncio:Task exception was never retrieved не могу разобраться?
я создаю бота и в качестве инструмента использую aiogram.
Вот его исходный код:
import time
import logging
import button as nav
from aiogram import Bot, Dispatcher, executor, types
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.dispatcher.storage import FSMContext
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from database import add_user,add_user_nickname,add_user_numb,add_user_name,get_user_name,get_user_nickname,get_user_numb,drop_user_reg
logging.basicConfig(level=logging.INFO)
# Переменные в верхнем регистре не поддаются изменению
TOKEN = "-----------------------------"
MSG = "^_^"
if __name__ == '__main__':
executor.start_polling(dp,skip_updates=True)
После команды старт выдает ошибку:
ERROR:asyncio:Task exception was never retrieved
future: exception=BadRequest('Unsupported parse_mode')>
Traceback (most recent call last):
File "D:\telegram_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File "D:\telegram_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
File "D:\telegram_bot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "D:\telegram_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
return await self.message_handlers.notify(update.message)
File "D:\telegram_bot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "d:\telegram_bot\bot.py", line 79, in start_handler
await message.reply(chat_id,f"Привет, {user_full_name}!\n"
File "D:\telegram_bot\venv\lib\site-packages\aiogram\types\message.py", line 1687, in reply
return await self.bot.send_message(
File "D:\telegram_bot\venv\lib\site-packages\aiogram\bot\bot.py", line 346, in send_message
result = await self.request(api.Methods.SEND_MESSAGE, payload)
File "D:\telegram_bot\venv\lib\site-packages\aiogram\bot\base.py", line 236, in request
return await api.make_request(await self.get_session(), self.server, self.__token, method, data, files,
File "D:\telegram_bot\venv\lib\site-packages\aiogram\bot\api.py", line 140, in make_request
return check_result(method, response.content_type, response.status, await response.text())
File "D:\telegram_bot\venv\lib\site-packages\aiogram\bot\api.py", line 115, in check_result
exceptions.BadRequest.detect(description)
File "D:\telegram_bot\venv\lib\site-packages\aiogram\utils\exceptions.py", line 141, in detect
raise cls(description)
aiogram.utils.exceptions.BadRequest: Unsupported parse_mode
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
await message.reply(chat_id,f"Привет, {user_full_name}!\n"
f"Введите ваше имя :",reply_markup = nav.mainMenu)
На кой ты при ответе на конкретное сообщение указываешь chat_id? Сообщение и так знает, кто его отправил.
Подробнее
Как найти строку, в которой проблема?
В секции Traceback (most recent call last): только одна запись относится непосредственно к твоему коду:
File "d:\telegram_bot\bot.py", line 79, in start_handler
await message.reply(chat_id,f"Привет, {user_full_name}!\n"
Всё выше и ниже ссылается на venv\lib\site-packages\aiogram. Значит, дело именно в этой строке.
Как понять, в чём проблема?
При отправке сообщения можно указать два позиционных параметра: текст сообщения и parse_mode, т.е. как отформатировано сообщение (HTML, markdown или еще что). Раз unsupported parse_mode, значит, во второй параметр попало что-то постороннее. А самый простой способ этому случиться - если перед текстом сообщения есть что-то лишнее. У тебя chat_id стало текстом, а собственно текст стал parse_mode.