Message can't be edited. Бот не может отредактировать сообщение Aiogram

Столкнулся с проблемой: бот не может отредактировать собственное сообщение часть кода:

await bot.edit_message_text(chat_id=result[0], text=work, message_id=message_id)

rusult - достает id чата пользователей

message_id - хранит id сообщения

work - текст сообщения

код обработчика:

@dp.message_handler(state=Form.status_mail)
async def status_mail(message: types.Message, state: FSMContext):
    id = int(message.text)
    status = 0
    db.edit_work_status(id, status)
    ids = db.id_exists()
    work_data = db.work_data(ids)
    for row in work_data:
        work = fmt.text(f"1", fmt.hbold("• Тула:"), f"{row[1]}\n", fmt.hbold("• Адрес:"), f"{row[2]}\n", fmt.hbold("• Что делать:"), f"{row[3]}\n", fmt.hbold("• Начало:"), f"{row[4]}\n", fmt.hbold("• Вам на руки:"), fmt.hunderline(f"{row[5]}"),  "р./час, минималка", fmt.hunderline("2"), "часа")
        method = "HTML"
        message_id = f"{row[8]}"
        results = db.mailling()
        for result in results:
            await bot.edit_message_text(chat_id=result[0], text=work, parse_mode=method, message_id=message_id)
        await state.finish()

текст ошибки:

ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-30' coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py:409> exception=MessageCantBeEdited("Message can't be edited")>
Traceback (most recent call last):
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 417, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 238, in process_updates
    return await asyncio.gather(*tasks)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 259, in process_update
    return await self.message_handlers.notify(update.message)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\1\Desktop\bt_f\main.py", line 146, in status_closed_mail
    await bot.edit_message_text(chat_id=result[0], text=work, message_id=message_id)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\bot\bot.py", line 2411, in edit_message_text
    result = await self.request(api.Methods.EDIT_MESSAGE_TEXT, payload)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\bot\base.py", line 208, in request
    return await api.make_request(self.session, self.server, self.__token, method, data, files,
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\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 "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\bot\api.py", line 115, in check_result
    exceptions.BadRequest.detect(description)
  File "C:\Users\1\AppData\Local\Programs\Python\Python39\lib\site-packages\aiogram\utils\exceptions.py", line 140, in detect
    raise err(cls.text or description)
aiogram.utils.exceptions.MessageCantBeEdited: Message can't be edited

Ответы (2 шт):

Автор решения: MyZik

Исходя из процесса, который Вы описали и Вашего кода, причин ошибки может быть две: не найден чат, или сообщение, которое нужно редактировать.

Вы не можете сами присвоить ID отправляемому сообщению (да и зачем?), так как оно у каждого пользователя уникально и должно генерироваться автоматически.

Костыльное решение проблемы - хранить ВСЕ отправленные сообщения в базе, с их оригинальными ID, и потом уже редактировать конкретные сообщение.

Хорошее решение проблемы - использовать новую рассылку.

→ Ссылка
Автор решения: Александр Попов

Попробуйте message_id + 1. В моём случае сработало.

→ Ссылка