Как исправить, чтобы в телеграмм, прошлая клавиатура не копировалась при повторной отправке?

Я делаю бота в телеграмме, на Питоне с использованием библиотеки aiogram.

Во время работы с клавиатурой, столкнулся с проблемой и не могу найти решение. Проблема заключается в том, что у меня стоит реакция на определенное сообщение, после которого - отправляется клавиатура. Потом, при нажатии на эту клавиатуру, на данный момент, мне нужно чтобы она скрывалась. Процесс скрытия заключается в том, чтобы отправить пустую клавиатуру. Всё успешно, однако, после 2 попытки отправить клавиатуру на эту же команду, получается так, что клавиатура "копируется" и в итоге, у меня уже не 2 кнопки как должно быть, а 4. Помогите пожалуйста решить данную проблему. Фото:

Фото3

Фото2

Фото1

Часть того кода:

elif userAct == "joing":
   if msgr == str(dsert[0]):
       
       print("yes1")
       dbs.dt.update_users_act(id, "newUser") #изменение статуса пользователя в бд
       await msg.reply("es", reply_markup=types.ReplyKeyboardRemove())
   elif msgr == str(dsert[1]):
       print("yes2")
       dbs.dt.update_users_act(id, "newUser")
       await msg.reply("es", reply_markup=types.ReplyKeyboardRemove())
   else:
       print("yes3")
       dbs.dt.update_users_act(id, "newUser")
       await msg.reply("es", reply_markup=types.ReplyKeyboardRemove())

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

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

При отправке кнопок вы можете добавить опцию one_time_keyboard=True, которое скроет кнопки после нажатия. Почитайте об этом здесь

→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Сделайте вначале список:

black_users = []

В функции обработчика нажатий кнопки запишите:

global black_users
if ID юзера not in black_users:
    #код действий по нажатию кнопки
    black_users.append(ID юзера)

Такой код сойдёт даже на многопользовательского бота (в отличие от другого ответа).

P. S. с aiogram работал мало, поэтому я не знаю, как вызвать ID юзера и заменяю русской фразой. Замените это на функцию получения ID юзера

→ Ссылка