avro-union-no-duplicate-types

Status: IN

A union schema cannot contain two branches with the same type name (or record name); this constraint is enforced at schema parse time in Schema._parse.

Source: entries/2026/05/29/avro-serializer-avro_serializer.md

Example

seen = set()
for t in defn:
    key = s.name if s.name else s.type_name
    if key in seen:
        raise SchemaError(f"Duplicate type in union: {key}")
    seen.add(key)

JSON