apache/beam · error · UnsupportedOperationException
Does not support to convert
Error message
Does not support to convert %s to SerializableRexNode.
What it means
SerializableRexNode.Builder.build() only knows how to serialize RexInputRef and RexFieldAccess Calcite nodes. Any other RexNode subtype (e.g. RexCall, RexLiteral) passed to the builder cannot be converted into a serializable form, so the guard throws UnsupportedOperationException to signal the expression is too complex to serialize for this use.
Solutions
- Restrict usage to filter predicates that compile down to only RexInputRef/RexFieldAccess nodes, which are the only supported forms.
- Simplify or rewrite the pushed-down expression so it does not require serializing unsupported RexNode subtypes.
- If broader support is needed, extend Builder.build() to handle additional RexNode subtypes by adding corresponding SerializableRexNode classes.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/SerializableRexNode.java:46 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/748b3247c8e24870.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/SerializableRexNode.java:46
return new SerializableRexNode.Builder(rexNode);
}
/** SerializableRexNode.Builder. */
public static class Builder {
private RexNode rexNode;
public Builder(RexNode rexNode) {
this.rexNode = rexNode;
}
public SerializableRexNode build() {
if (rexNode instanceof RexInputRef) {
return new SerializableRexInputRef((RexInputRef) rexNode);
} else if (rexNode instanceof RexFieldAccess) {
return new SerializableRexFieldAccess((RexFieldAccess) rexNode);
}
throw new UnsupportedOperationException(
"Does not support to convert " + rexNode.getType() + " to SerializableRexNode.");
}
}
}
View on GitHub (pinned to 12126d8942)