RoundRobinGroupChat raises raw AttributeError/TypeError for invalid participants instead of a clear validation error
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 64/100
Research direction
Start at the RoundRobinGroupChat constructor and reproduce the three invalid participants cases shown in the issue. Trace where participants is first inspected, then verify that None, non-sequences, and sequences containing non-agent objects produce a clear validation error rather than raw AttributeError or TypeError.
Written by the indexing model from the issue text.
Description
What happened?
Describe the bug
Hi, I noticed that RoundRobinGroupChat does not seem to validate the type of the participants argument before using it.
When participants is accidentally set to None, a string, an integer, or a list containing a non-agent object, the constructor raises low-level Python errors such as:
- TypeError: object of type 'NoneType' has no len()
- TypeError: object of type 'int' has no len()
- AttributeError: 'str' object has no attribute 'name'
I understand these are invalid inputs, but they are realistic user mistakes. It would be much easier to debug if AutoGen raised a clear TypeError or ValueError explaining that participants must be a non-empty list/sequence of ChatAgent instances.
To Reproduce
from autogen_agentchat.agents import UserProxyAgent
from autogen_agentchat.teams import RoundRobinGroupChat
Case 1: participants is None
RoundRobinGroupChat(participants=None)
Case 2: participants is not a sequence of agents
RoundRobinGroupChat(participants="not a list")
Case 3: participants contains a non-agent object
RoundRobinGroupChat(participants=[UserProxyAgent(name="valid_user"), "bad"])
Expected behavior
The constructor should reject these invalid inputs with a clear validation error, for example:
TypeError: participants must be a non-empty sequence of ChatAgent instances
or a similar ValueError explaining which item is invalid.
Actual behavior
The constructor raises internal implementation errors:
RoundRobinGroupChat(participants=None)
-> TypeError: object of type 'NoneType' has no len()
RoundRobinGroupChat(participants="not a list")
-> AttributeError: 'str' object has no attribute 'name'
RoundRobinGroupChat(participants=[UserProxyAgent(name="valid_user"), "bad"])
-> AttributeError: 'str' object has no attribute 'name'
** Environment**
Package: autogen-agentchat
Observed with the local AutoGen checkout / current environment.
Python: 3.13
Additional context
This is not a request to accept these inputs. The issue is only about error handling: invalid user input currently leaks internal AttributeError/TypeError instead of a clear validation message.
Which packages was the bug in?
Python AgentChat (autogen-agentchat>=0.4.0)
AutoGen library version.
Python dev (main branch)
Other library version.
No response
Model used
No response
Model provider
None
Other model provider
No response
Python version
3.10
.NET version
None
Operating system
MacOS
- Dominant language
- Python
- Stars
- 61.1k
- Forks
- 9.2k
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/autogen
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 Half a day Newbie friendliness 68/100
All issues in microsoft/autogen
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100