@LuckPM

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 = "^_^"

bot = Bot(token=TOKEN)
dp = Dispatcher(bot,storage=MemoryStorage())

class user_reg(StatesGroup):
name =State()
nickname =State()
numb =State()

@dp.message_handler(state=user_reg.numb)
async def add_numb_(message:types.Message,state=FSMContext):
chat_id = message.chat_id
await state.finish()
add_user_numb(message)
await bot.send_message(chat_id,"Регистрация успешно завершена !",reply_markup = nav.mainMenu)


@dp.message_handler(state=user_reg.nickname)
async def add_nickname_(message:types.Message,state=FSMContext):
chat_id = message.chat_id
await state.finish()
add_user_nickname(message)
await bot.send_message(chat_id,"Введите ваш номер :",reply_markup = nav.mainMenu)
await user_reg.numb.set()

@dp.message_handler(state=user_reg.name)
async def add_name_(message:types.Message,state=FSMContext):
chat_id = message.chat_id
await state.finish()
add_user_name(message)
await bot.send_message(chat_id,"Введите ваш nickname :",reply_markup = nav.mainMenu)
await user_reg.nickname.set()

@dp.message_handler(commands=['drop'])
async def drop_message(message:types.Message,state=FSMContext):
chat_id = message.chat.id
drop_user_reg(chat_id)
await bot.send_message(chat_id, "Ваша запись удалена !")

@dp.message_handler(commands=['start'])
async def start_handler(message: types.Message):
user_id = message.from_user.id
user_name = message.from_user.first_name
user_full_name = message.from_user.full_name
logging.info(f'{user_id} {user_full_name}, {time.asctime()}')
chat_id = message.chat.id
user_status = add_user(message)
if user_status ==False:
user_name = get_user_name(chat_id)
user_nickname = get_user_nickname(chat_id)
user_numb = get_user_numb(chat_id)
await bot.send_message(chat_id,f"Ваше имя : {user_name}\n"
f"Ваш nickname : {user_nickname}\n"
f"Ваш номер : {user_numb}\n"
f"Чтобы пройти регистрацию сначала используйте команду /drop")
else:
await message.reply(chat_id,f"Привет, {user_full_name}!\n"
f"Введите ваше имя :",reply_markup = nav.mainMenu)
await user_reg.name.set()

for i in range(1):
time.sleep(1)
await bot.send_message(user_id, MSG.format(user_name))



@dp.message_handler(commands=['help'])
async def help_handler(message: types.Message):
await message.reply('@Rein')

@dp.message_handler()
async def bot_message(message: types.Message):
if message.text == 'Записаться':
await bot.send_message(message.from_user.id, 'Записаться', reply_markup=nav.otherMenu)
elif message.text == 'Пятница':
await message.reply("Вы записались Пятница ждем")
elif message.text == 'Суббота':
await message.reply(f'Вы записались суббота ждем')
elif message.text == 'Главное меню':
await bot.send_message(message.from_user.id, 'Главное меню', reply_markup=nav.mainMenu)


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
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы