У тебя
проблема молотка.
С 99% вероятностью тебе не нужно вызывать такие функции, они являются обработчиками событий и вызываются самим фреймворком aiogram. Если тебе нужно повторно использовать код в таком обработчике, вынеси его в отдельную функцию, которая не работает ни с состоянием, ни с событием.
Допустим, у тебя есть код:
@state_router.message(MyState.stateA)
async def process_stateA(message: Message, state: FSMContext) -> None:
data = await state.get_data()
result = message.text + str(data['some_key']) # это типа логика обработки
await message.reply(result)
Его надо будет отрефакторить так:
def do_stuff(msgtext: str, some_value) -> str:
return msgtext + str(some_value)
@state_router.message(MyState.stateA)
async def process_stateA(message: Message, state: FSMContext) -> None:
data = await state.get_data()
result = do_stuff(message.text, data['some_key'])
await message.reply(result)
И тогда ты сможешь при необходимости вызвать снова do_stuff(), не трогая process_stateA().