Ошибка в хэндлере

@dp.callback_query_handler(text=f'{where_cat["bron_slug"]}', state=Send.up)
            async def bron(call: types.CallbackQuery):
                lang = await db.select_user(tg_id=call.from_user.id)
                data = await state.get_data()
                a = data.get("a")
                try:
                    for i in range(1, 100):
                        a = call.message.message_id - i
                        await bot.delete_message(chat_id=call.message.chat.id, message_id=a)
                except MessageToDeleteNotFound:
                    await call.message.delete()
                    now = datetime.datetime.now()
                    markup = create_calendar(now.year, now.month)
                    if lang['lang'] == 'ru':
                        await call.message.answer("Пожалуйста, выберите дату прибытия в отель\n\n"
                                                  f"Сегодня: {now.year}", reply_markup=markup)
                        await Admin.first.set()
                    elif lang['lang'] == 'en':
                        await call.message.answer("Please, choose the date of arrival at the hotel\n\n"
                                                  f"Today: {now.year}", reply_markup=markup)
                        await Admin.first.set()
                    elif lang['lang'] == 'uz':
                        await call.message.answer("Iltimos, mehmonxonaga kelish sanansini tanlang\n\n"
                                                  f"Bugun: {now.year}", reply_markup=markup)
                        await Admin.first.set()


@dp.callback_query_handler(state=Admin.first)
async def inline11(call: types.CallbackQuery, state: FSMContext):
    now = datetime.datetime.now()
    lang = await db.select_user(tg_id=call.from_user.id)
    a = separate_callback_data(call.data)
    (_, action, year, month, day) = a
    curr = datetime.datetime(int(year), int(month), 1)
    if action == 'IGNORE':
        pass
    elif action == "DAY":
        ret_data = True, datetime.datetime(int(year), int(month), int(day))
        a = []
        if lang['lang'] == 'ru':
            a = ['', 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь',
                 'Ноябрь', 'Декабрь']
        elif lang['lang'] == 'en':
            a = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
                 'November December']
        elif lang['lang'] == 'uz':
            a = ['', 'yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avgust', 'sentyabr', 'oktyabr',
                 "Noyabr dekabr"]
        mon = (ret_data[1].strftime("%m"))
        month = (a[int(mon) % 12])
        day = (ret_data[1].strftime("%d"))
        await state.update_data(
            {'chekday1': ret_data[1]}
        )
        await state.update_data(
            {'vis_year': year}
        )
        await state.update_data(
            {"vis_month": month}
        )
        await state.update_data(
            {"vis_day": day}
        )
        await Admin.second.set()
    elif action == "PREV-MONTH":
        pre = curr - datetime.timedelta(days=1)
        await call.message.edit_text("Пожалуйста, выберите дату прибытия в отель\n\n"
                                     f"Сегодня: {now.year}",
                                     reply_markup=create_calendar(int(pre.year), int(pre.month)))

    elif action == "NEXT-MONTH":
        ne = curr + datetime.timedelta(days=31)
        await call.message.edit_text("Пожалуйста, выберите дату прибытия в отель\n\n"
                                     f"Сегодня: {now.year}", reply_markup=create_calendar(int(ne.year), int(ne.month)))
    else:
        await call.message.edit_text(text="Что-то пошло не так!", reply_markup=create_calendar(now.year, now.month))
        await Send.up.set()

второй хэндлер работает через раз на пример когда я нажимаю на одну из инлайн кнопок оно грузится но после 2 нажатия работает первое нажатие хэндлер видит но не обрабатывает

Функция календаря

def create_calendar(year=None,month=None):
    """
    Create an inline keyboard with the provided year and month
    :param int year: Year to use in the calendar, if None the current year is used.
    :param int month: Month to use in the calendar, if None the current month is used.
    :return: Returns the InlineKeyboardMarkup object with the calendar.
    """
    now = datetime.datetime.now()
    if year == None: year = now.year
    if month == None: month = now.month
    data_ignore = create_callback_data("IGNORE", year, month, 0)
    keyboard = []
    #First row - Month and Year
    row=[]
    row.append(InlineKeyboardButton(calendar.month_name[month]+" "+str(year),callback_data=data_ignore))
    keyboard.append(row)
    #Second row - Week Days
    row=[]
    for day in ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"]:
        row.append(InlineKeyboardButton(day,callback_data=data_ignore))
    keyboard.append(row)

    my_calendar = calendar.monthcalendar(year, month)
    for week in my_calendar:
        row=[]
        for day in week:
            if(day==0):
                row.append(InlineKeyboardButton(" ",callback_data=data_ignore))
            else:
                row.append(InlineKeyboardButton(str(day),callback_data=create_callback_data("DAY",year,month,day)))
        keyboard.append(row)
    #Last row - Buttons
    row=[]
    row.append(InlineKeyboardButton("<",callback_data=create_callback_data("PREV-MONTH",year,month,day)))
    row.append(InlineKeyboardButton(" ",callback_data=data_ignore))
    row.append(InlineKeyboardButton(">",callback_data=create_callback_data("NEXT-MONTH",year,month,day)))
    keyboard.append(row)
    return InlineKeyboardMarkup(inline_keyboard=keyboard)

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