infiniflow/ragflow · error · ValueError
[VariableAggregator] group_name can not be empty!
Error message
[VariableAggregator] group_name can not be empty!
What it means
ValueError from VariableAggregatorParam.check(). The aggregator groups list must contain dicts, and each dict must have a truthy 'group_name'; a group with a missing or empty name is rejected before execution.
Source
Thrown at agent/component/variable_aggregator.py:39
class VariableAggregatorParam(ComponentParamBase):
"""
Parameters for VariableAggregator
- groups: list of dicts {"group_name": str, "variables": [variable selectors]}
"""
def __init__(self):
super().__init__()
# each group expects: {"group_name": str, "variables": List[str]}
self.groups = []
def check(self):
self.check_empty(self.groups, "[VariableAggregator] groups")
for g in self.groups:
if not g.get("group_name"):
raise ValueError("[VariableAggregator] group_name can not be empty!")
if not g.get("variables"):
raise ValueError(f"[VariableAggregator] variables of group `{g.get('group_name')}` can not be empty")
if not isinstance(g.get("variables"), list):
raise ValueError(f"[VariableAggregator] variables of group `{g.get('group_name')}` should be a list of strings")
def get_input_form(self) -> dict[str, dict]:
return {
"variables": {
"name": "Variables",
"type": "list",
}
}
class VariableAggregator(ComponentBase):
component_name = "VariableAggregator"
@timeout(int(os.environ.get("COMPONENT_EXEC_TIMEOUT", 3)))View on GitHub (pinned to 554fb1133a)
Solutions
- Give every aggregation group a non-empty name in the VariableAggregator config.
- Delete unnamed placeholder groups.
- When authoring DSL programmatically, assert each group dict has a truthy group_name before saving.
Example fix
// before
"groups": [{"variables": ["a@x", "b@y"]}]
// after
"groups": [{"group_name": "inputs", "variables": ["a@x", "b@y"]}] Defensive patterns
Strategy: validation
Validate before calling
for g in aggregator_param.groups:
assert g.get('group_name'), f'group missing name: {g}' Type guard
def group_has_name(g: dict) -> bool:
return isinstance(g, dict) and bool(g.get('group_name')) Try / catch
try:
aggregator_param.check()
except ValueError as e:
if 'group_name can not be empty' in str(e):
# name or remove the offending group
... Prevention
- Name every aggregation group at creation time.
- Delete placeholder groups instead of leaving them unnamed.
- Validate group dicts when generating canvases programmatically.
When it happens
Trigger: A groups entry like {"variables": [...]} without group_name, or with group_name set to ""/None. check_empty already guaranteed groups itself is non-empty; this fires per-group.
Common situations: Adding a group in the canvas UI but not naming it; hand-edited DSL omitting the key; duplicating a group and clearing the name to change it later.
Related errors
- [VariableAggregator] variables of group `{g.get('group_name'
- Loop Variable is not complete.
- Loop condition is incomplete.
- [VariableAggregator] variables of group `{g.get('group_name'
- Variable is not complete.
AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15).
Data as JSON: /api/errors/6b7f8587bfe80051.
Report an issue: GitHub.