Skip to content

bug(poller): pollComments exhausts Worker subrequest budget on dipper_ai #134

@liplus-lin-lay

Description

@liplus-lin-lay

observation

Cloudflare Workers logs (2026-04-26 cron run) show `pollComments` failing with subrequest exhaustion specifically on Liplus-Project/dipper_ai:

```
pollComments: failed to fetch comments for Liplus-Project/dipper_ai#50: Too many subrequests by single Worker invocation
pollComments: failed to fetch review comments for Liplus-Project/dipper_ai#56: Too many subrequests
pollComments: failed to fetch reviews for Liplus-Project/dipper_ai#56: Too many subrequests
pollComments: failed to fetch comments for Liplus-Project/dipper_ai#56: Too many subrequests
pollComments: failed to fetch review comments for Liplus-Project/dipper_ai#10: Too many subrequests
pollComments: failed to fetch reviews for Liplus-Project/dipper_ai#10: Too many subrequests
```

Other 4 repos (github-rag-mcp / github-webhook-mcp / liplus-language / liplus-desktop) do not show the error.

hypothesis

dipper_ai has more comment-bearing issues/PRs than other repos, so the per-cron `pollComments` fan-out exceeds the 1000-subrequest-per-invocation budget. Same root cause as #130 (wiki side), different surface.

Existing caps in `pollComments`:

  • `MAX_COMMENT_BACKFILL_PARENTS = 20` — limits parents per repo
  • `MAX_COMMENTS_EMBEDDED_PER_REPO = 30` — limits embeddings

But each parent fetches 3 separate endpoints (comments + reviews + review_comments) before checking the embed cap. With many high-comment parents, fetch fan-out alone exceeds budget.

fix direction (memo)

Apply the same pattern as #130 / PR #131 (wiki):

  • Cap total fetches per repo per invocation (parents-probed cap distinct from embeddings cap)
  • Or: stagger comments-fetch across multiple cron runs (similar to diff backfill window)
  • Or: per-parent budget cap that aborts mid-parent if subrequest counter overflows

related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug動いていない、壊れているmemoメモとして開始した状態。見出しは必要なものだけでよい

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions