{"record":{"id":"8c7e22b5587f7acd","repo":"apache/beam","slug":"unknown-beam-read-property-name","errorCode":null,"errorMessage":"Unknown Beam read property: ${name}","messagePattern":"Unknown Beam read property: (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTable.java","lineNumber":88,"sourceCode":"\n  IcebergTable(String tableIdentifier, Table table, IcebergCatalogConfig catalogConfig) {\n    super(table.getSchema());\n    this.schema = table.getSchema();\n    this.tableIdentifier = tableIdentifier;\n    this.catalogConfig = catalogConfig;\n    ObjectNode properties = table.getProperties();\n    for (Map.Entry<String, JsonNode> property : properties.properties()) {\n      String name = property.getKey().toLowerCase();\n      if (name.startsWith(BEAM_WRITE_PROPERTY)) {\n        String prop = name.substring(BEAM_WRITE_PROPERTY.length());\n        if (prop.equalsIgnoreCase(TRIGGERING_FREQUENCY_FIELD)) {\n          this.triggeringFrequency = property.getValue().asInt();\n        } else {\n          throw new IllegalArgumentException(\"Unknown Beam write property: \" + name);\n        }\n      } else if (name.startsWith(BEAM_READ_PROPERTY)) {\n        // none supported yet\n        throw new IllegalArgumentException(\"Unknown Beam read property: \" + name);\n      }\n    }\n\n    this.partitionFields = table.getPartitionFields();\n  }\n\n  @Override\n  public POutput buildIOWriter(PCollection<Row> input) {\n    ImmutableMap.Builder<String, Object> configBuilder = ImmutableMap.builder();\n    configBuilder.putAll(getBaseConfig());\n    if (triggeringFrequency != null) {\n      configBuilder.put(TRIGGERING_FREQUENCY_FIELD, triggeringFrequency);\n    }\n    if (partitionFields != null) {\n      configBuilder.put(\"partition_fields\", partitionFields);\n    }\n    return input.apply(Managed.write(Managed.ICEBERG).withConfig(configBuilder.build()));\n  }","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/iceberg/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/iceberg/IcebergTable.java#L70-L106","documentation":"IcebergTable currently supports no Beam-specific read properties. Any table property beginning with the 'beam_read_' prefix is rejected in the constructor with this IllegalArgumentException, because the read path consumes no configurable options.","triggerScenarios":"Declaring a Beam SQL Iceberg table with any beam_read_* property (e.g. beam_read_streaming='true') in TBLPROPERTIES or the properties map.","commonSituations":"Guessing at read configuration knobs, copying options from other connectors, following outdated docs or blog posts that mention beam_read_ options for Iceberg.","solutions":["Remove all beam_read_* properties from the table definition","Configure the read via pipeline options or the Iceberg catalog config instead of table properties","Check the Beam Iceberg documentation for supported configuration surfaces (none exist as table properties today)"],"exampleFix":"// before\nCREATE EXTERNAL TABLE ... TBLPROPERTIES {'beam_read_concurrency':'8'}\n// after\nCREATE EXTERNAL TABLE ... -- no beam_read_* properties","handlingStrategy":"validation","validationCode":"boolean hasReadProps = props.keySet().stream()\n  .map(String::toLowerCase)\n  .anyMatch(k -> k.startsWith(\"beam_read_\"));\nif (hasReadProps) throw new IllegalArgumentException(\"beam_read_* properties are not supported\");","typeGuard":null,"tryCatchPattern":"try { new IcebergTable(...); } catch (IllegalArgumentException e) { /* surface property cleanup instruction */ }","preventionTips":["Never add beam_read_* properties to Iceberg tables","Configure reads via pipeline options instead"],"tags":["sql","iceberg","table-properties","configuration"],"backgroundTag":"invalid-config-value","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"}