Ошибка API Telegram Bot при попытке изменить сообщение: "Неверный запрос: сообщение не найдено"

Я попытался отредактировать бот-сообщение, которое было отправлено около 2 часов назад, и получил эту ошибку, и предположил, что это сообщение настолько устарело для редактирования, что оно неспособно. Затем я попытался отредактировать другое сообщение, которое было отправлено немного позже, и оно было успешным. Но после этого я попытался отредактировать один из недавно отправленных сообщений, и получил эту ошибку еще раз. Теперь кажется, что результаты запроса случайны.

Что это значит?

Вот пример моего запроса POST:

https://api.telegram.org/bot{token}/editMessageText?chat_id=12345&message_id=370&text=New text

И вот результат:

{
  "ok": false,
  "error_code": 400,
  "description": "Bad Request: message not found"
}

Ответ 1

Ограничение по времени составляет 48 часов источник

Вы получите этот код ошибки либо с удаленным сообщением, либо с истечением срока действия.

Я не играл с Telegraph API некоторое время, но я помнил, что видел какое-то непоследовательное поведение, о котором вы говорили. Мне пришлось закончить реализацию логики повтора в моих вызовах API, чтобы обойти это.

Сначала вы можете экспериментировать вручную, чтобы узнать, поможет ли это вам. Я не знаю, рассмотрели ли они проблемы, с которыми я столкнулся в прошлом, но повторная попытка помогла мне.

Ответ 2

Это потому, что сообщение, которое вы пытаетесь отредактировать, не отправляется ботом.

У меня тоже была эта проблема. В моем случае я пытался редактировать некоторые сообщения на канале, которые были отправлены тремя админами; двух человеческих админов и бота.

Бот может редактировать только свои собственные сообщения.

Ограничение времени для редактирования доступно только для пользователей.

боты могут редактировать свои собственные сообщения в любое время.

Ответ 3

все четко написано в ошибке - сообщение не модифицируется. это означает, что вы пытаетесь изменить сообщение, не меняя его текста, то есть оно останется таким же, как было раньше.