GroupsCometFeedRegularStoriesPaginationQuery
| Domain | groups |
| Kind | query |
| doc_id | 28356402754042733 |
| Path | /api/graphql/ |
| Sends | count, 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 |
| Reads | node....GroupsCometFeedRegularStories_paginationGroup |
| Called from | GroupsCometFeedRegularStories_paginationGroup.graphql |
| rea | ev_f314fa7c7ded3e1ae6690cd2d8345025f12935614984361d308cafd4e9289790 |
Seen 20 time(s) in 6 run(s).
| Action | Our step | Times | Status | Took | After step start | Errors |
|---|---|---|---|---|---|---|
| inspect | step 2: scroll 2 x 700px | 1 | 200 | 1113 ms | 959 ms | — |
| inspect | scroll: +700px in 16 wheel steps, 796 ms | 1 | 200 | 1174 ms | 703 ms | — |
| inspect | step 4: scroll 2 x 700px | 1 | 200 | 1303 ms | 605 ms | — |
| inspect | scroll: +700px in 16 wheel steps, 984 ms | 1 | 200 | 1945 ms | 3398 ms | — |
| inspect | step 7: scroll 2 x 700px | 1 | 200 | 1180 ms | 268 ms | — |
| inspect | step 13: press Escape | 1 | 200 | 1422 ms | 75 ms | — |
| inspect | step 24: scroll 2 x 500-700px | 1 | 200 | 1198 ms | 1467 ms | — |
| inspect | step 43: clickRole link "…" | 1 | 200 | 2996 ms | 1023 ms | — |
| inspect | step 45: clickRole button "…" | 1 | 200 | 1716 ms | 2313 ms | — |
| inspect | step 1: goto /groups/<id>/ | 1 | 200 | 2623 ms | 4640 ms | — |
| inspect | step 2: scroll 1 x 600px | 1 | 200 | 1216 ms | 1269 ms | — |
| inspect | step 3: scroll 2 x 700px | 1 | 200 | 1346 ms | 877 ms | — |
| inspect | scroll: +700px in 16 wheel steps, 766 ms | 1 | 200 | 926 ms | 1091 ms | — |
| inspect | scroll: +700px in 15 wheel steps, 672 ms | 1 | 200 | 1010 ms | 3119 ms | — |
| inspect | scroll: +700px in 15 wheel steps, 766 ms | 1 | 200 | 1349 ms | 3089 ms | — |
| inspect | step 1: goto /groups/<id> | 1 | 200 | 951 ms | 6923 ms | — |
| inspect | step 3: scroll 1 x 700px | 1 | 200 | 1001 ms | 1292 ms | — |
| inspect | step 5: scroll 2 x 600-800px | 1 | 200 | 876 ms | 735 ms | — |
| inspect | step 1: goto /groups/junkremovalwinners | 2 | 200 | 1126–1172 ms | 6709–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.