Skip to content

fix: Add input validation for participants in BaseGroupChat (#7580)#7581

Open
Jah-yee wants to merge 2 commits intomicrosoft:mainfrom
Jah-yee:fix/roundrobin-validation
Open

fix: Add input validation for participants in BaseGroupChat (#7580)#7581
Jah-yee wants to merge 2 commits intomicrosoft:mainfrom
Jah-yee:fix/roundrobin-validation

Conversation

@Jah-yee
Copy link
Copy Markdown

@Jah-yee Jah-yee commented Apr 14, 2026

Good day,

This PR adds clear input validation for the participants parameter in BaseGroupChat (and consequently RoundRobinGroupChat), addressing issue #7580.

Problem

Previously, when invalid inputs were passed to RoundRobinGroupChat(participants=...):

  • NoneTypeError: object of type 'NoneType' has no len()
  • "not a list"AttributeError: 'str' object has no attribute 'name'
  • [UserProxyAgent(...), "bad"]AttributeError: 'str' object has no attribute 'name'

Solution

Added validation in BaseGroupChat.__init__ to check:

  1. participants is not None
  2. participants can be converted to a list
  3. The list is not empty
  4. Each item is a ChatAgent or Team instance

Now invalid inputs raise clear error messages:

  • TypeError: participants must be a non-empty sequence of ChatAgent or Team instances.
  • TypeError: participants must be a non-empty sequence of ChatAgent or Team instances, but found str at index 0.

Thank you for your work on this project. I hope this small fix is helpful. Please let me know if there's anything to adjust.

Warmly, RoomWithOutRoof

Jah-yee and others added 2 commits March 13, 2026 23:49
When output_dir is None, JupyterCodeExecutor creates a temp directory via
tempfile.mkdtemp() but never cleans it up in stop(). This leaks a directory
per executor lifetime.

This fix:
- Uses tempfile.TemporaryDirectory() instead of tempfile.mkdtemp() when
  output_dir is None
- Stores the reference so it gets cleaned up automatically when stop() is
  called or when the object is destroyed

Fixes microsoft#7389
Add clear validation errors for invalid participants input instead of
leaking low-level AttributeError/TypeError.

This fixes the issue where RoundRobinGroupChat raises raw python errors
for invalid inputs like None, strings, or non-Agent objects.

Closes: microsoft#7580
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant