Skip to content

ExceptionGroup repr is misleading if original exception sequence is mutated #141732

@gschaffner

Description

@gschaffner

Bug report

Bug description:

The exception listing in repr(exc_grp) diverges from exc_grp.exceptions when the initial sequence of exceptions passed to the constructor has been mutated.

Expected behavior: The exceptions listed in repr(exc_grp) match exc_grp.exceptions, which is immutable.

Reproducer:

exceptions = list[Exception]()
exceptions.append(ValueError())
exc_grp = ExceptionGroup("", exceptions)
print(f"{exc_grp.exceptions=!r}")
print(f"{exc_grp=!r}")
print()
exceptions.clear()
print(f"{exc_grp.exceptions=!r}")
print(f"{exc_grp=!r}")

Output:

exc_grp.exceptions=(ValueError(),)
exc_grp=ExceptionGroup('', [ValueError()])

exc_grp.exceptions=(ValueError(),)
exc_grp=ExceptionGroup('', [])

Expected output:

exc_grp.exceptions=(ValueError(),)
exc_grp=ExceptionGroup('', [ValueError()])

exc_grp.exceptions=(ValueError(),)
exc_grp=ExceptionGroup('', [ValueError()])

CPython versions tested on:

3.11, 3.12, 3.13, 3.14

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions