Skip to content

[Bug]: DynamicCommunitySelection skips child communities because children IDs are int while self.reports keys are str #2004

@takumint78

Description

@takumint78

Do you need to file an issue?

  • I have searched the existing issues and this bug is not already filed.
  • My model is hosted on OpenAI or Azure. If not, please look at the "model providers" issue and don't file a new one here.
  • I believe this is a legitimate bug, not just a question. If this is a question, please use the Discussions area.

Describe the bug

In graphrag/query/context_builder/dynamic_community_selection.py, lines 131-132 read:

for child in self.communities[community].children:  # child is int
    if child in self.reports:                       # self.reports keys are str

Because children holds integers and self.reports is keyed by strings, the membership test always fails.
As a result, IDs that should be selected as child communities are missed, and the exploration of the next community level is never executed.

Steps to reproduce

Execute global_search with dynamic_community_selection=True using a knowledge graph where the highest community_level is 1 or higher.

Expected Behavior

Expected Behavior
Child community IDs should match the type used in self.reports, allowing them to be evaluated and, if relevant, included in the result.

Actual Behavior
if child in self.reports is always False; all child communities are skipped, so the algorithm never descends to the next level.

GraphRAG Config Used

# Paste your config here

Logs and screenshots

This is the current behavior when a query is issued:
The message cannot find community is displayed, and only 10 out of 5,586 communities are referenced.
Image

This is the behavior after a simple fix was applied:
309 out of 5,586 communities are now referenced when a query is issued.
Note: The threshold is set to 2.
Image

Fixed Code:

for child in self.communities[community].children: 
   if str(child) in self.reports: 
      communities_to_rate.append(str(child))

Additional Information

  • GraphRAG Version: v2.4.0
  • Operating System: Windows 11
  • Python Version: 3.12.11
  • Related Issues: Nothing

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageDefault label assignment, indicates new issue needs reviewed by a maintainer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions