apache/seatunnel · error · FileConnectorException
FORMAT_NOT_SUPPORT
FORMAT_NOT_SUPPORT
Error message
schema_evolution_enabled=true is not supported for file_format_type=binary. Binary format has a fixed schema and cannot apply schema changes.
What it means
Binary file format stores raw bytes with a fixed internal schema, so schema evolution (schema_evolution_enabled=true) cannot be applied to it. FileSinkConfig rejects this combination with FileConnectorException FORMAT_NOT_SUPPORT at sink construction time, since evolved columns could never be represented in a binary payload.
Solutions
- Set schema_evolution_enabled = false for binary sinks.
- Switch file_format_type to a schema-capable format (parquet, orc, text, json) if evolution is required.
- Route binary data to a separate sink from schema-evolving structured data.
Example fix
// before file_format_type = "binary" schema_evolution_enabled = true // after file_format_type = "binary" schema_evolution_enabled = false
Defensive patterns
Strategy: validation
Validate before calling
if (config.schemaEvolutionEnabled && "binary".equals(config.fileFormatType)) {
throw new IllegalArgumentException("schema_evolution_enabled is unsupported for binary format");
} Prevention
- Enable schema evolution only for schema-capable formats (parquet, orc, text, json).
- Keep binary sinks in dedicated jobs without evolution flags.
- Maintain a matrix of option-vs-format compatibility in your config templates.
When it happens
Trigger: Configuring a file sink with file_format_type = "binary" together with schema_evolution_enabled = true.
Common situations: Users enabling schema evolution globally for CDC/merge-update pipelines whose target format is binary; copy-pasting schema-evolution configs across text/parquet/binary sinks.
Related errors
- Received AlterTableEvent but schema_evolution_enabled=false…
- Schema evolution: partition column [" + col + "] is missing…
- BINARY_FILE_PART_ORDER_ERROR
- CanalJson file does not support this compress type
- Cannot convert field
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/f8ef2fd2b3ea26dc.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/FileSinkConfig.java:228
this.parquetWriteTimestampAsInt96 =
pluginConfig.get(FileBaseSinkOptions.PARQUET_AVRO_WRITE_TIMESTAMP_AS_INT96);
this.parquetAvroWriteFixedAsInt96 =
pluginConfig.get(FileBaseSinkOptions.PARQUET_AVRO_WRITE_FIXED_AS_INT96);
}
if (FileFormat.CSV.equals(this.fileFormat)) {
this.csvStringQuoteMode = pluginConfig.get(FileBaseSinkOptions.CSV_STRING_QUOTE_MODE);
}
if (FileFormat.DEBEZIUM_JSON.equals(this.fileFormat)
|| FileFormat.CANAL_JSON.equals(this.fileFormat)
|| FileFormat.MAXWELL_JSON.equals(this.fileFormat)) {
this.mergeUpdateEvent = pluginConfig.get(FileBaseSinkOptions.MERGE_UPDATE_EVENT);
}
this.schemaEvolutionEnabled =
pluginConfig.get(FileBaseSinkOptions.SCHEMA_EVOLUTION_ENABLED);
if (this.schemaEvolutionEnabled && FileFormat.BINARY.equals(this.fileFormat)) {
throw new FileConnectorException(
FileConnectorErrorCode.FORMAT_NOT_SUPPORT,
"schema_evolution_enabled=true is not supported for file_format_type=binary."
+ " Binary format has a fixed schema and cannot apply schema changes.");
}
// schema_evolution + partition_by is supported: AbstractWriteStrategy.applySchemaChange
// rebuilds both sinkColumnsIndexInRow and partitionFieldsIndexInRow from column NAMES
// against the post-ALTER row type. Dropping a partition column itself is rejected at
// rebuild time (throws IllegalStateException) so the partition tree never corrupts.
}
}
View on GitHub (pinned to cf67b549a7)