Суть проблемы в том, что при очень быстром нажатии на одну кнопку несколько раз, меню раздваивается, потому что хэндлер получает два сообщения вместо планированного одного.
Пишу условный код, на котором случается ошибка, тк в оригинале очень много строк.
def menu_show (message):
# В оригинале тут работа с БД
markup = types.ReplyKeyboardMarkup(True, one_time_keyboard = True)
markup.row("menu")
bot.send_message(message.chat.id, "*Меню*", reply_markup=markup)
bot.register_next_step_handler(message, menu_processing)
def menu_processing(message):
if message.text == "menu":
menu_show(message)
else:
bot.send_message(message.chat.id, "Неправильный ввод, нажми на кнопку.")
bot.register_next_step_handler(message, menu_show)