IGPAPI
    Preparing search index...

    Variable ChallengeScrapingWarningScreenConst

    ChallengeScrapingWarningScreen: ScreenDefinition<
        "ChallengeScrapingWarning",
        "screen",
        | {
            step: {
                bloks_action: string;
                challenge_context: string;
                cni: string
                | number;
                flow_render_type: 3;
                step_data?: { readonly [key: string]: Json };
                step_name: string;
            };
            surface: "navigation";
        }
        | {
            resolved: {
                appId: string;
                challengeType: string;
                dismissAppId?: string;
                serverParams: {
                    INTERNAL__latency_qpl_instance_id: number;
                    INTERNAL__latency_qpl_marker_id: number;
                };
            };
            surface: "redirect";
        },
        | {
            step: {
                bloks_action: string;
                challenge_context: string;
                cni: string
                | number;
                flow_render_type: 3;
                step_data?: { readonly [key: string]: Json };
                step_name: string;
            };
            surface: "navigation";
        }
        | {
            resolved: {
                appId: string;
                challengeType: string;
                dismissAppId?: string;
                serverParams: {
                    INTERNAL__latency_qpl_instance_id: number;
                    INTERNAL__latency_qpl_marker_id: number;
                };
            };
            surface: "redirect";
        },
        | {
            step: {
                bloks_action: string;
                challenge_context: string;
                cni: string
                | number;
                flow_render_type: 3;
                step_data?: { readonly [key: string]: Json };
                step_name: string;
            };
            surface: "navigation";
        }
        | {
            resolved: {
                appId: string;
                challengeType: string;
                dismissAppId?: string;
                serverParams: {
                    INTERNAL__latency_qpl_instance_id: number;
                    INTERNAL__latency_qpl_marker_id: number;
                };
            };
            surface: "redirect";
        },
        never,
        MobileNavigation,
        ChallengeScrapingWarningActions,
        Record<never, never>,
        never,
        never,
    > = ...

    "We've detected automated behavior on your account": the scraping warning. It reaches the library by two different roads, and the screen is one: Instagram's navigation challenge names the step scraping_warning, and a redirect challenge resolves to the Bloks app com.bloks.www.ig.challenge.scraping_warning. Its input is a sum of exactly those two variants (navigation with the step decoded by ChallengeNavigationAnswerSchema, redirect with the resolved challenge), so a screen can never hold both variants' fields at once.

    Reached only as an interruption of a request (OpenChallenge(error)); it has no back and is no step of a trail.

    Its one action, acknowledge(), takes the road the screen was reached by:

    • a navigation step sends the step's submission unchanged (which already refetches the challenge) and continues into the step the server answers with;
    • a resolved redirect dismisses through the Bloks dismiss app when the answer carries one — the one request the legacy action sent — and continues into the step that answer is; an answer that names no further step is the challenge's end, because dismissing is the person closing the warning. Without a dismiss app it takes the challenge's navigation action, then fetches and continues.

    The challenge's end closes back to the interrupted screen; the action runs only while this screen is on top, and the interrupted action is never retried.

    Ships with screens.challenge.scraping-warning.png, the screen as the old navigation class was observed on a test account.

    Unverified by recording. No recording of the Android 451 app on this step exists: the navigation answer is the challenge module's own sample, and the redirect resolve was observed once and could not be reproduced on demand. A recording of the Android app on the scraping warning, through either road, would settle the screen and the dismissal.