Skip to content

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

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions