Почему не читается хендлер при двух роутерах callback_query (Aiogram 3.0.0b8)

Возникла проблема при написании телеграм-бота с примитивной экономикой. Первой идеей было сделать простую игру, в которой нужно было решать примеры, но я натолкнулся на проблему.

Кратко об игре: Чтобы зайти в стартовое "меню" этой игры, нужно было нажать кнопку из другого меню, либо выйти из самой игры (вернуться в меню).

Игра запускается и работает нормально. Если решить пример правильно - напишет, если неправильно - тоже напишет. Однако выйти из этой игры посредством кнопок, которые она предлагает невозможно. Приходится либо листать переписку с ботом, чтобы найти кнопку в другие меню (там автоматически пользователю перекидывается стейт verified_user для дальнейшей нормальной работы), либо останавливать бота.

Я не понимаю, почему не срабатывают хэндлеры kudos_calculator и kudos_calculator_playing чтобы выйти из игры или начать ее заново после того, как игра началась.

Часть кода из handlers.py:

@router.callback_query(lambda c: c.data == 'finance_menu')
async def finance_menu(cbq: types.CallbackQuery, state: FSMContext):
    await cbq.message.answer('Вот твое финансовое меню (ЭТОТ ТЕКСТ НЕ ИЗ TEXT .PY, ЕГО НУЖНО ТУДА КИНУТЬ)',
                             reply_markup=kb.fin_menu) 
    await state.set_state(Verified.verified_user)


@router.callback_query(lambda c: c.data == 'kudos_calc')
@router.callback_query(lambda c: c.data == 'kudos_calc_finish')
async def kudos_calculator(cbq: types.CallbackQuery, state: FSMContext):
    await cbq.message.answer('Добро пожаловать в Kudos Calculator! Это первая игра, где ты сможешь зарабатывать '
                             'KUDOS! Тебе нужно всего лишь решать математические примеры! Чтобы начать, '
                             'нажми на кнопку "Начать игру" (НЕ ИЗ ФАЙЛА ТЕКСТА)', reply_markup=kb.kudos_calc)


@router.callback_query(lambda c: c.data == 'kudos_calc_start')
@router.callback_query(lambda c: c.data == 'kudos_calc_restart')
async def kudos_calc_playing(cbq: types.CallbackQuery, state: FSMContext):
    global a_value, b_value, c_value
    a_value = randint(1, 999)
    b_value = randint(1, 999)
    c_value = a_value + b_value
    await cbq.message.answer(f"{text.kudos_calc_solve}<b>{a_value}+{b_value}</b>?", reply_markup=kb.kudos_calc_quit)
    await state.set_state(Verified.kudos_calc_solving)


@router.message(Verified.kudos_calc_solving)
async def kudos_calc_solving(msg: Message, state: FSMContext):
    kudos = randint(1,3)
    if str(msg.text) == str(c_value):
        await msg.answer(f'Ты угадал! На твой счет зачислено {kudos} KUDOS', reply_markup=kb.kudos_calc_finish)
    else:
        await msg.answer('К сожалению, ты был не прав! Попробуй решить другой пример!', reply_markup=kb.kudos_calc_finish)

Весь код из kb.py: (Клавиатуры)

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup, KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove
game_start_btn = InlineKeyboardButton(text='Начать регистрацию', callback_data='start_reg')
game_start = InlineKeyboardMarkup(inline_keyboard=[
    [game_start_btn],
])

menu_transfer_btn = InlineKeyboardButton(text='Перейти в меню', callback_data='to_menu_transfer')
menu_transfer = InlineKeyboardMarkup(inline_keyboard=[
    [menu_transfer_btn],
])

menu_b1 = InlineKeyboardButton(text='Мой профиль', callback_data='my_profile')
menu_b2 = InlineKeyboardButton(text='Меню финансов', callback_data='finance_menu')
menu_b3 = InlineKeyboardButton(text='Топы', callback_data='top_menu')
menu_b4 = InlineKeyboardButton(text='Настройки', callback_data='settings')   # ВНЕ ИСПОЛЬЗОВАНИЯ НА МОМЕНТ 26.06.2023
menu_b5 = InlineKeyboardButton(text='Информация (Credits)', callback_data='creator_info')

menu = InlineKeyboardMarkup(inline_keyboard=[
    [menu_b1],[menu_b2],
    [menu_b3],[menu_b5],
])

fin_menu_b1 = InlineKeyboardButton(text='Заработать в Kudos калькуляторе', callback_data='kudos_calc')

fin_menu = InlineKeyboardMarkup(inline_keyboard=[
    [fin_menu_b1],[menu_transfer_btn],
])

kudos_calc_b1 = InlineKeyboardButton(text='Начать игру', callback_data='kudos_calc_start')
kudos_calc_b2 = KeyboardButton(text='Выйти из игры', callback_data='kudos_calc_finish')
kudos_calc_b3 = KeyboardButton(text='Ещё один пример', callback_data='kudos_calc_restart')

kudos_calc = InlineKeyboardMarkup(inline_keyboard=[
    [kudos_calc_b1],[menu_b2],
])

kudos_calc_quit = ReplyKeyboardMarkup(keyboard=[
    [kudos_calc_b2]
], resize_keyboard = True)

kudos_calc_finish = ReplyKeyboardMarkup(keyboard=[
    [kudos_calc_b3],[kudos_calc_b2]
], resize_keyboard = True, input_field_placeholder='Чего бы тебе хотелось?')

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