Проблема с отображением меню бота в супергруппах на iOS

Добрый день. На протяжении нескольких лет мы стабильно использовали собственного Telegram-бота в супергруппах без каких-либо сбоев.

Сейчас возникла следующая проблема, характерная исключительно для клиента Telegram на iOS (последняя версия):

  • В обычных группах меню бота отображается корректно.
  • В супергруппах меню отсутствует.

На всех других платформах (ПК, веб-версия, Android) меню бота функционирует нормально как в обычных группах, так и в супергруппах.

Вопрос: С чем может быть связана эта проблема и как её можно решить?

Меню должно появляться в интерфейсе справа от поля ввода текста, в области переключения на смайлики и клавиатуру.

Используемый код

Исходная реализация функции start:

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """Отправляет сообщение при команде /start и показывает кнопку."""
    user_id = update.effective_chat.id

    # Определяем группу пользователя
    user_group = None
    for group, admins in GROUP_ADMINS.items():
        if user_id in admins:
            user_group = group
            break

    if user_group is None:
        await update.effective_message.reply_text("Вы не авторизованы для использования этого бота.")
        return

    # Получаем уровень доступа для группы
    access_level = GROUP_ACCESS_LEVELS.get(user_group, 0)

    # Формируем набор кнопок на основе уровня доступа
    button_set = [button for button, level in BUTTON_ACCESS_LEVELS.items() if level <= access_level]

    keyboard = [[KeyboardButton(button_text)] for button_text in button_set]
    reply_markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True)

    # Задержка в функции start
    await asyncio.sleep(2)

    # Отправка сообщения с меню
    if update.message:
        await update.effective_message.reply_text('Привет! Выберите действие или используйте *Меню (⌘)*!', parse_mode='Markdown', reply_markup=reply_markup)
    else:
        await update.effective_message.edit_message_text('Привет! Выберите действие или используйте *Меню (⌘)*!', parse_mode='Markdown', reply_markup=reply_markup)

def main() -> None:
    """Запуск бота."""

После обнаружения проблемы код был немного модифицирован (добавлены параметры one_time_keyboard и is_persistent), но это не привело к изменению ситуации:

keyboard = [[KeyboardButton(button_text)] for button_text in button_set]
reply_markup = ReplyKeyboardMarkup(
    keyboard,
    resize_keyboard=True,
    one_time_keyboard=False,
    is_persistent=True
)