✏️ SuppressNotModifiedError

Редактирование сообщения в тот же контент, что уже есть, заставляет Telegram поднять TelegramBadRequest: message is not modified. Обычно это безобидно (вы перерисовали экран, который не изменился), но роняет хендлер.

Оберните редактирование в контекстный менеджер, чтобы проглотить ровно эту ошибку:

from raito.utils.errors import SuppressNotModifiedError

with SuppressNotModifiedError():
    await message.edit_text("same text")

Подавляется только TelegramBadRequest с «message is not modified»; любая другая ошибка, включая прочие варианты TelegramBadRequest, пробрасывается как обычно.

Когда применять

Везде, где интерфейс перерисовывается на каждое действие и может нарисовать тот же экран: обновление inline-меню, живое статус-сообщение или возврат пагинацией на текущую страницу. Собственные пагинаторы Raito используют его внутри, поэтому там он вам почти не нужен. Берите его в своих интерфейсах с редактированием на месте.

Совет

Он также доступен в rt, поэтому from raito import rt и затем with rt.SuppressNotModifiedError(): ... работает без более глубокого импорта.