PHONE_CODE_EXPIRED Pyrogram, День назад всё работало

Есть бот, который должен входить в аккаунт тг. Использую Pyrogram он запрашивает ключи, номер телефона, если надо пароль.

@admin_router.message(F.text.lower() == 'авторизовать аккаунт')
async def account_start_auth(message: Message, state: FSMContext):
    await message.answer(text='Хорошо, предоставьте мне api_id')
    await state.set_state(AdminState.GET_API_ID)


@admin_router.message(AdminState.GET_API_ID)
async def account_get_api_id(message: Message, state: FSMContext):
    await message.answer(text='Прекрасно, а теперь, предоставьте мне api_hash')
    await add_data_account(message.from_user.id, 'api_id', message.text)
    await state.set_state(AdminState.GET_API_HASH)


@admin_router.message(AdminState.GET_API_HASH)
async def account_get_hash(message: Message, state: FSMContext):
    await message.answer(text='Замечательно, теперь мне нужен ваш номер телефона', reply_markup=phone_keyboard())
    await add_data_account(message.from_user.id, 'api_hash', message.text)
    await state.set_state(AdminState.GET_NUMBER)


@admin_router.message(AdminState.GET_NUMBER)
async def account_get_number(message: Message, state: FSMContext):
    await add_data_account(message.from_user.id, 'number', message.contact.phone_number)
    await forwarder.auth_user(message.from_user.id, message)
    await state.set_state(AdminState.GET_CODE)


@admin_router.message(AdminState.GET_CODE)
async def account_get_code(message: Message, state: FSMContext):
    code = message.text.replace(' ', '')
    code = code.replace('.gfr', '')
    if not await forwarder.get_code(message.from_user.id, code, message):
        await state.set_state(AdminState.GET_PASS)
        return
    await state.clear()


@admin_router.message(AdminState.GET_PASS)
async def account_get_pass(message: Message, state: FSMContext):
    await forwarder.get_pass(message.from_user.id, message.text, message)
    await state.clear()

День назад всё работало хорошо, но сегодня КАЖДЫЙ код является устаревшим. Я менял прокси, я менял аккаунты с которых запрашивал, я менял токен бота. Вот функции для авторизации:

    async def get_data_user(self, account_id):
        user_data = await get_account(account_id)

        api_id = user_data[1]
        api_hash = user_data[2]
        number = user_data[3]
        phone_code_hash = user_data[4]
        client = Client(f"session_{account_id}", api_id=api_id, api_hash=api_hash)
        await client.connect()
        return api_id, api_hash, number, phone_code_hash, client

    async def auth_user(self, account_id, message: Message):
        data_user = await self.get_data_user(account_id)
        client = data_user[4]

        result = await client.send_code(phone_number=data_user[2])
        await add_data_account(account_id, 'num_hash', result.phone_code_hash)
        await message.answer(text='Вам был отправлен код для аутентификации. Пожалуйста, введите его.')

    async def get_code(self, account_id, code, message: Message):
        data_user = await self.get_data_user(account_id)
        client = data_user[4]
        try:
            await asyncio.sleep(3)
            print(code)
            await client.sign_in(phone_number=data_user[2], phone_code=code, phone_code_hash=data_user[3])
            await message.answer(text='авторизация успешна')
            return True

        except SessionPasswordNeeded:
            await message.answer("Для авторизации необходимо ввести пароль двухфакторной аутентификации.")
            return False

        except Exception as e:
            print(e)

    async def get_pass(self, account_id, password, message: Message):
        data_user = await self.get_data_user(account_id)
        client = data_user[4]
        try:
            await client.check_password(password=password)
            await message.answer("Пароль принят.")
        except Exception as e:
            print(f"Ошибка:\n{e}")

Если необходимо предоставлю остальной код, но весь процесс авторизации тут. Ошибка возникает именно тут await client.sign_in(phone_number=data_user[2], phone_code=code, phone_code_hash=data_user[3])


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