apache/iceberg · error · UnsupportedOperationException
Visitor does not support variant
Error message
Visitor does not support variant
What it means
Visitor guard in AvroWithPartnerByStructureVisitor: the schema contains a variant type (metadata+value pair), and this particular visitor implementation did not override the variant() visitor method. Unlike the sibling methods that return null for unneeded types, variant is a hard guard, so any Avro schema with variant fails traversal for this visitor.
Solutions
- Use a visitor implementation that overrides variant() when reading/writing variant data
- Remove variant-typed columns from the schema before the Avro conversion
- Upgrade Iceberg to a version whose visitors support variant
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at core/src/main/java/org/apache/iceberg/avro/AvroWithPartnerByStructureVisitor.java:221 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/d71f935d0f45a625.
Report an issue: GitHub.
Appendix: source
Thrown at core/src/main/java/org/apache/iceberg/avro/AvroWithPartnerByStructureVisitor.java:221
public T union(P type, Schema union, List<T> options) {
return null;
}
public T array(P sArray, Schema array, T element) {
return null;
}
public T map(P sMap, Schema map, T key, T value) {
return null;
}
public T map(P sMap, Schema map, T value) {
return null;
}
public T variant(P partner, T metadata, T value) {
throw new UnsupportedOperationException("Visitor does not support variant");
}
public T primitive(P type, Schema primitive) {
return null;
}
}
View on GitHub (pinned to 86d9c8fc54)