{"record":{"id":"748b3247c8e24870","repo":"apache/beam","slug":"does-not-support-to-convert-s-to-serializablerexnode","errorCode":null,"errorMessage":"Does not support to convert %s to SerializableRexNode.","messagePattern":"Does not support to convert (.+?) to SerializableRexNode\\.","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/SerializableRexNode.java","lineNumber":46,"sourceCode":"    return new SerializableRexNode.Builder(rexNode);\n  }\n\n  /** SerializableRexNode.Builder. */\n  public static class Builder {\n    private RexNode rexNode;\n\n    public Builder(RexNode rexNode) {\n      this.rexNode = rexNode;\n    }\n\n    public SerializableRexNode build() {\n      if (rexNode instanceof RexInputRef) {\n        return new SerializableRexInputRef((RexInputRef) rexNode);\n      } else if (rexNode instanceof RexFieldAccess) {\n        return new SerializableRexFieldAccess((RexFieldAccess) rexNode);\n      }\n\n      throw new UnsupportedOperationException(\n          \"Does not support to convert \" + rexNode.getType() + \" to SerializableRexNode.\");\n    }\n  }\n}\n","sourceCodeStart":28,"sourceCodeEnd":51,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/SerializableRexNode.java#L28-L51","documentation":"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.","triggerScenarios":"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.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}