IGPAPI
    Preparing search index...

    Variable ChallengeTextCaptchaScreenConst

    ChallengeTextCaptchaScreen: ScreenDefinition<
        "ChallengeTextCaptcha",
        "screen",
        {
            flow: {
                authenticity_product?: number;
                challenge_root_id?: string;
                enrollment_id?: number;
                external_flow_id?: number;
                hashed_ui_state?: string;
                ig_container_module?: string;
                is_blocking?: number;
                ixt_initial_screen_id?: string;
                location?: string;
                trigger_event_type?: string;
                trigger_session_id?: string;
                v2_polling?: number;
            };
            imageUrl: string;
            serverParams: {
                challenge_root_id?: string;
                INTERNAL__latency_qpl_instance_id?: string;
                INTERNAL__latency_qpl_marker_id: number;
                persisted_data?: string;
            };
        },
        {
            flow: {
                authenticity_product?: number;
                challenge_root_id?: string;
                enrollment_id?: number;
                external_flow_id?: number;
                hashed_ui_state?: string;
                ig_container_module?: string;
                is_blocking?: number;
                ixt_initial_screen_id?: string;
                location?: string;
                trigger_event_type?: string;
                trigger_session_id?: string;
                v2_polling?: number;
            };
            imageUrl: string;
            serverParams: {
                challenge_root_id?: string;
                INTERNAL__latency_qpl_instance_id?: string;
                INTERNAL__latency_qpl_marker_id: number;
                persisted_data?: string;
            };
        },
        {
            flow: {
                authenticity_product?: number;
                challenge_root_id?: string;
                enrollment_id?: number;
                external_flow_id?: number;
                hashed_ui_state?: string;
                ig_container_module?: string;
                is_blocking?: number;
                ixt_initial_screen_id?: string;
                location?: string;
                trigger_event_type?: string;
                trigger_session_id?: string;
                v2_polling?: number;
            };
            imageUrl: string;
            serverParams: {
                challenge_root_id?: string;
                INTERNAL__latency_qpl_instance_id?: string;
                INTERNAL__latency_qpl_marker_id: number;
                persisted_data?: string;
            };
        },
        never,
        MobileNavigation,
        ChallengeTextCaptchaActions,
        Record<never, never>,
        never,
        never,
    > = ...

    "Help us confirm it's you — Enter the code below": the UFAC image captcha, whose characters the person reads from a captcha image and types. The screen keeps the step's serverParams (the challenge id and the persisted data the submit and the refresh both carry, derived from the controller payload once), the UFAC state accumulated so far, and the imageUrl the payload embeds — what the person reads the characters from.

    Reached only as an interruption of a request (OpenChallenge(error)): the challenge's classification fetched the UFAC controller before this screen opened, so its enter sends nothing. It has no back and is no step of a trail.

    Its actions:

    • submitCaptcha(captcha) lower-cases the typed characters and posts them to the step's bot_captcha.submit action unchanged, then continues into the step the answer is — another UFAC screen or the challenge's end.
    • changeImage() asks the server for another image (refresh_ufac_state); the answer is the same step with a fresh payload — a new image and new params — so it continues into a new handle of this screen that replaces the current one. Handles are snapshots: the old handle keeps the image and params it showed.

    Both run only while this screen is on top; the interrupted action is never retried.

    Ships with screens.challenge.text-captcha.jpeg, the screen as the old class was observed on a test account.

    Unverified by recording. No recording of the Android 451 app on this step exists, and the challenge module has no sample of this captcha kind — its test builds the payload synthetically. A recording of the Android app on the UFAC image captcha would settle the page, the characters and the refresh.