GroupsCometFeedRegularStoriesPaginationQuery

Domaingroups
Kindquery
doc_id28356402754042733
Path/api/graphql/
Sendscount, cursor, feedLocation, feedType, feedbackSource, filterTopicId, focusCommentID, id, privacySelectorRenderLocation, referringStoryRenderLocation, renderLocation, scale, sortingSetting, stream_initial_count, useDefaultActor, youthIntegrityHostID, __relay_internal__pv__GHLShouldChangeAdIdFieldNamerelayprovider, __relay_internal__pv__GHLShouldChangeSponsoredDataFieldNamerelayprovider, __relay_internal__pv__CometFeedStory_enable_reactor_facepilerelayprovider, __relay_internal__pv__CometFeedStory_enable_social_bubblesrelayprovider, __relay_internal__pv__CometFeedStory_enable_post_permalink_white_space_clickrelayprovider, __relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider, __relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider, __relay_internal__pv__IsWorkUserrelayprovider, __relay_internal__pv__TestPilotShouldIncludeDemoAdUseCaserelayprovider, __relay_internal__pv__FBReels_deprecate_short_form_video_context_gkrelayprovider, __relay_internal__pv__CometUFI_dedicated_comment_routable_dialog_gkrelayprovider, __relay_internal__pv__FBReels_enable_view_dubbed_audio_type_gkrelayprovider, __relay_internal__pv__CometFeedShareMedia_shouldPrefetchShareImagerelayprovider, __relay_internal__pv__CometImmersivePhotoCanUserDisable3DMotionrelayprovider, __relay_internal__pv__WorkCometIsEmployeeGKProviderrelayprovider, __relay_internal__pv__IsMergQAPollsrelayprovider, __relay_internal__pv__FBReelsMediaFooter_comet_enable_reels_ads_gkrelayprovider, __relay_internal__pv__CometUFIReactionsEnableShortNamerelayprovider, __relay_internal__pv__CometUFICommentAutoTranslationTyperelayprovider, __relay_internal__pv__CometUFIShareActionMigrationrelayprovider, __relay_internal__pv__CometUFISingleLineUFIrelayprovider, __relay_internal__pv__relay_provider_comet_ufi_ssr_seo_deferrelayprovider, __relay_internal__pv__FBReelsIFUTileContent_reelsIFUPlayOnHoverrelayprovider, __relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider, __relay_internal__pv__StoriesShouldEnablePhotosensitiveContentWarningrelayprovider, __relay_internal__pv__ShouldEnableBakedInTextStoriesrelayprovider, __relay_internal__pv__StoriesShouldIncludeFbNotesrelayprovider
Readsnode....GroupsCometFeedRegularStories_paginationGroup
Called fromGroupsCometFeedRegularStories_paginationGroup.graphql
reaev_f314fa7c7ded3e1ae6690cd2d8345025f12935614984361d308cafd4e9289790

Seen 20 time(s) in 6 run(s).

ActionOur stepTimesStatusTookAfter step startErrors
inspectstep 2: scroll 2 x 700px12001113 ms959 ms—
inspectscroll: +700px in 16 wheel steps, 796 ms12001174 ms703 ms—
inspectstep 4: scroll 2 x 700px12001303 ms605 ms—
inspectscroll: +700px in 16 wheel steps, 984 ms12001945 ms3398 ms—
inspectstep 7: scroll 2 x 700px12001180 ms268 ms—
inspectstep 13: press Escape12001422 ms75 ms—
inspectstep 24: scroll 2 x 500-700px12001198 ms1467 ms—
inspectstep 43: clickRole link "…"12002996 ms1023 ms—
inspectstep 45: clickRole button "…"12001716 ms2313 ms—
inspectstep 1: goto /groups/<id>/12002623 ms4640 ms—
inspectstep 2: scroll 1 x 600px12001216 ms1269 ms—
inspectstep 3: scroll 2 x 700px12001346 ms877 ms—
inspectscroll: +700px in 16 wheel steps, 766 ms1200926 ms1091 ms—
inspectscroll: +700px in 15 wheel steps, 672 ms12001010 ms3119 ms—
inspectscroll: +700px in 15 wheel steps, 766 ms12001349 ms3089 ms—
inspectstep 1: goto /groups/<id>1200951 ms6923 ms—
inspectstep 3: scroll 1 x 700px12001001 ms1292 ms—
inspectstep 5: scroll 2 x 600-800px1200876 ms735 ms—
inspectstep 1: goto /groups/junkremovalwinners22001126–1172 ms6709–8782 ms—

What it sent and what came back (the newest 1 from our runs)

Read from each run's own recording (rule 73), secrets and signed link tokens taken out. Kept in ~/.logCli/rea/clientFacts.json, so it stays after the run is pruned.

runs/inspect/20261024T060921_61594063207669, step 1: goto /groups/junkremovalwinners: 200, 1172 ms

Sent:

{
  "qpl_active_flow_ids": "25305590,431626709",
  "fb_api_caller_class": "RelayModern",
  "fb_api_req_friendly_name": "GroupsCometFeedRegularStoriesPaginationQuery",
  "server_timestamps": "true",
  "variables": {
    "count": 3,
    "cursor": "Cg8TZXhpc3RpbmdfdW5pdF9jb3VudAICDwtyZWFsX2N1cnNvcg+vQVFIVHc4WTQzal9UOERCUm1nZmxpcFRLVE4xSW1lU3V2R3AzdU54VHV1X3BVM3VSd3owc3ZYNmg3YV8xX2FSblEwbXlKbWJLY0UzMGI4LTVtdDM5TC1EbmtROmV5SXdJam94TnpreU9ESXlNVGd5TENJeElqbzNOamd5TENJeklqb3dMQ0kwSWpveExDSTFJam95TENJMklqb3dMQ0kzSWpvdE1Td2lPQ0k2TFRGOQ8TaGVhZGVyX2dsb2JhbF9jb3VudAIBDxJtYWluX2ZlZWRfcG9zaXRpb24CAg8NZmVlZF9vcmRlcmluZw8bcmFua2VkX2ludGVyZXN0X2NvbW11bml0… (548 chars)",
    "feedLocation": "GROUP",
    "feedType": "DISCUSSION",
    "feedbackSource": 0,
    "filterTopicId": null,
    "focusCommentID": null,
    "privacySelectorRenderLocation": "COMET_STREAM",
    "referringStoryRenderLocation": null,
    "renderLocation": "group",
    "scale": 1,
    "sortingSetting": "TOP_POSTS",
    "stream_initial_count": 1,
    "useDefaultActor": false,
    "youthIntegrityHostID": "3549906855288164",
    "id": "3549906855288164",
    "__relay_internal__pv__GHLShouldChangeAdIdFieldNamerelayprovider": true,
    "__relay_internal__pv__GHLShouldChangeSponsoredDataFieldNamerelayprovider": true,
    "__relay_internal__pv__CometFeedStory_enable_reactor_facepilerelayprovider": false,
    "__relay_internal__pv__CometFeedStory_enable_social_bubblesrelayprovider": false,
    "__relay_internal__pv__CometFeedStory_enable_post_permalink_white_space_clickrelayprovider": false,
    "__relay_internal__pv__CometUFICommentActionLinksRewriteEnabledrelayprovider": true,
    "__relay_internal__pv__CometUFICommentAvatarStickerAnimatedImagerelayprovider": false,
    "__relay_internal__pv__IsWorkUserrelayprovider": false,
    "__relay_internal__pv__TestPilotShouldIncludeDemoAdUseCaserelayprovider": false,
    "__relay_internal__pv__FBReels_deprecate_short_form_video_context_gkrelayprovider": true,
    "__relay_internal__pv__CometUFI_dedicated_comment_routable_dialog_gkrelayprovider": true,
    "__relay_internal__pv__FBReels_enable_view_dubbed_audio_type_gkrelayprovider": true,
    "__relay_internal__pv__CometFeedShareMedia_shouldPrefetchShareImagerelayprovider": true,
    "__relay_internal__pv__CometImmersivePhotoCanUserDisable3DMotionrelayprovider": false,
    "__relay_internal__pv__WorkCometIsEmployeeGKProviderrelayprovider": false,
    "__relay_internal__pv__IsMergQAPollsrelayprovider": false,
    "__relay_internal__pv__FBReelsMediaFooter_comet_enable_reels_ads_gkrelayprovider": true,
    "__relay_internal__pv__CometUFIReactionsEnableShortNamerelayprovider": false,
    "__relay_internal__pv__CometUFICommentAutoTranslationTyperelayprovider": "AUTO_TRANSLATE",
    "__relay_internal__pv__CometUFIShareActionMigrationrelayprovider": true,
    "__relay_internal__pv__CometUFISingleLineUFIrelayprovider": true,
    "__relay_internal__pv__relay_provider_comet_ufi_ssr_seo_deferrelayprovider": true,
    "__relay_internal__pv__FBReelsIFUTileContent_reelsIFUPlayOnHoverrelayprovider": true,
    "__relay_internal__pv__GroupsCometGYSJFeedItemHeightrelayprovider": 206,
    "__relay_internal__pv__StoriesShouldEnablePhotosensitiveContentWarningrelayprovider": false,
    "__relay_internal__pv__ShouldEnableBakedInTextStoriesrelayprovider": false,
    "__relay_internal__pv__StoriesShouldIncludeFbNotesrelayprovider": false
  },
  "doc_id": "28356402754042733",
  "fb_api_analytics_tags": [
    "qpl_active_flow_ids=25305590,431626709"
  ]
}

Answered:

{
  "first": {
    "data": {
      "node": {
        "__typename": "Group",
        "group_feed": "(1 fields)",
        "id": "3549906855288164"
      }
    },
    "extensions": {
      "prefetch_uris_v2": [
        "(5 fields)"
      ],
      "server_metadata": {
        "request_start_time_ms": 1792822187357,
        "time_at_flush_ms": 1792822187728
      },
      "is_final": false,
      "sr_payload": {
        "ddd": "(4 fields)"
      }
    }
  },
  "followingParts": 3,
  "parts": [
    {
      "label": "GroupsCometFeedRegularStories_paginationGroup$stream$GroupsCometFeedRegularStories_group_group_feed",
      "path": [
        "node",
        "group_feed",
        "edges",
        1
      ],
      "data": {
        "node": "(38 fields)",
        "cursor": "AQHTDPAcKBjn4BGvgpTAf1PYClJ48wLVtWyIpdKLNlvr_kVw4uGzCufuiiRwpY0nA-MiDbrXr_cgpK3beg8Ks54Xkg:eyIwIjoxNzkyODIyMTgyLCIxIjo3NjgyLCIzIjoxLCI0IjoxLCI1IjoyLCI2IjowLCI3IjotMSwiOCI6LTF9"
      },
      "extensions": {
        "prefetch_uris_v2": "(4 items)",
        "is_final": false,
        "sr_payload": "(1 fields)"
      }
    },
    {
      "label": "GroupsCometFeedRegularStories_paginationGroup$stream$GroupsCometFeedRegularStories_group_group_feed",
      "path": [
        "node",
        "group_feed",
        "edges",
        2
      ],
      "data": {
        "node": "(38 fields)",
        "cursor": "AQHTbIxc65QIXBtBS52xIkIbWGvwj46Z7t5sUwChz6Lhkc1tgAQpRz05HFHVu1K_dLkfTPBgvXxMcQuBNe8RC8M3cg:eyIwIjoxNzkyODIyMTgyLCIxIjo3NjgyLCIzIjoxLCI0IjoxLCI1IjoyLCI2IjowLCI3IjotMSwiOCI6LTF9"
      },
      "extensions": {
        "prefetch_uris_v2": "(1 items)",
        "is_final": false,
        "sr_payload": "(1 fields)"
      }
    },
    {
      "label": "GroupsCometFeedRegularStories_paginationGroup$defer$GroupsCometFeedRegularStories_group_group_feed$page_info",
      "path": [
        "node",
        "group_feed"
      ],
      "data": {
        "page_info": "(2 fields)"
      },
      "extensions": {
        "prefetch_uris_v2": "(1 items)",
        "is_final": true
      }
    }
  ]
}

What it does

Loads a group's discussion feed, three posts a page (count: 3), newest first (sortingSetting: CHRONOLOGICAL, feedType: DISCUSSION), by the group's id and a cursor. One query serves the whole feed: it fired as the group page loaded (951 ms) and again on the first and third scroll (1001 ms, 876 ms), its cursor's main_feed_position moving 2, 5, 8 (inspect 20261020T134155, Bethlehem in "Recommendations of Bethlehem, PA", doc_id 28956948070566246). The response is streamed: 4 to 10 JSON chunks, the post first and its deferred parts after. Every page held each post's post_id, the group (only the expected group id), its creation_time, the author (actors), the text (message.text), the permalink, the feedback id, and the next end_cursor with has_next_page.

What our machine does with it

It is what the group read (issue #27, docs/groupRead.md) reads posts from: the page sends it on its own as the account scrolls, and every step's HAR already records the response (rule 22), so the read never calls GraphQL itself. The first page's posts (the cursor's position 2 at load) arrive embedded in the group page's HTML, which the HAR keeps since MAX_DOCUMENT_BODY (the 2 MB cap dropped the 2.3 MB page before). There the same chunks sit in the page's JSON script blocks as __bbox.results of CometGroupDiscussionRootSuccessQuery's preloader, with the feed under data.group.group_feed (not data.node), and the first edge is a GroupsSectionHeaderUnit ("New posts"), not a post (run 20261020T143506): the read skips any unit that isn't a Story. A post is kept only with its post_id, this group's id and its creation_time, as facebook-camofox-client's extractor required; end_cursor and creation_time give the read its cursor, so each read yields only new posts.

What can go wrong

None seen: all three answered 200 in 876-1001 ms. A page that never fires it (a group not joined, a checkpoint) leaves the read with no posts; the page state hook (rules 54-55) reports a checkpoint or login page, and a group the account isn't in shows its Join button (log facebook join group). A streamed chunk missing a post's id, group or time is dropped and counted, never patched.