diff --git a/CHANGES b/CHANGES index 7e865801719..09be46cd06f 100644 --- a/CHANGES +++ b/CHANGES @@ -76,6 +76,7 @@ Bugs fixed whitespace (ex. ``Dict[str, str]``) * #8945: when transforming typed fields, call the specified role instead of making an single xref. For C and C++, use the ``expr`` role for typed fields. +* #9322: KeyError is raised on PropagateDescDomain transform Testing -------- diff --git a/sphinx/transforms/post_transforms/__init__.py b/sphinx/transforms/post_transforms/__init__.py index dcb3da89f83..b398d077745 100644 --- a/sphinx/transforms/post_transforms/__init__.py +++ b/sphinx/transforms/post_transforms/__init__.py @@ -263,7 +263,8 @@ class PropagateDescDomain(SphinxPostTransform): def run(self, **kwargs: Any) -> None: for node in self.document.traverse(addnodes.desc_signature): - node['classes'].append(node.parent['domain']) + if node.parent.get('domain'): + node['classes'].append(node.parent['domain']) def setup(app: Sphinx) -> Dict[str, Any]: