{"record":{"id":"f8ef2fd2b3ea26dc","repo":"apache/seatunnel","slug":"format-not-support-f8ef2f","errorCode":"FORMAT_NOT_SUPPORT","errorMessage":"schema_evolution_enabled=true is not supported for file_format_type=binary. Binary format has a fixed schema and cannot apply schema changes.","messagePattern":"schema_evolution_enabled=true is not supported for file_format_type=binary\\. Binary format has a fixed schema and cannot apply schema changes\\.","errorType":"error_code","errorClass":"FileConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/FileSinkConfig.java","lineNumber":228,"sourceCode":"            this.parquetWriteTimestampAsInt96 =\n                    pluginConfig.get(FileBaseSinkOptions.PARQUET_AVRO_WRITE_TIMESTAMP_AS_INT96);\n            this.parquetAvroWriteFixedAsInt96 =\n                    pluginConfig.get(FileBaseSinkOptions.PARQUET_AVRO_WRITE_FIXED_AS_INT96);\n        }\n\n        if (FileFormat.CSV.equals(this.fileFormat)) {\n            this.csvStringQuoteMode = pluginConfig.get(FileBaseSinkOptions.CSV_STRING_QUOTE_MODE);\n        }\n        if (FileFormat.DEBEZIUM_JSON.equals(this.fileFormat)\n                || FileFormat.CANAL_JSON.equals(this.fileFormat)\n                || FileFormat.MAXWELL_JSON.equals(this.fileFormat)) {\n            this.mergeUpdateEvent = pluginConfig.get(FileBaseSinkOptions.MERGE_UPDATE_EVENT);\n        }\n\n        this.schemaEvolutionEnabled =\n                pluginConfig.get(FileBaseSinkOptions.SCHEMA_EVOLUTION_ENABLED);\n        if (this.schemaEvolutionEnabled && FileFormat.BINARY.equals(this.fileFormat)) {\n            throw new FileConnectorException(\n                    FileConnectorErrorCode.FORMAT_NOT_SUPPORT,\n                    \"schema_evolution_enabled=true is not supported for file_format_type=binary.\"\n                            + \" Binary format has a fixed schema and cannot apply schema changes.\");\n        }\n        // schema_evolution + partition_by is supported: AbstractWriteStrategy.applySchemaChange\n        // rebuilds both sinkColumnsIndexInRow and partitionFieldsIndexInRow from column NAMES\n        // against the post-ALTER row type. Dropping a partition column itself is rejected at\n        // rebuild time (throws IllegalStateException) so the partition tree never corrupts.\n    }\n}\n","sourceCodeStart":210,"sourceCodeEnd":239,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/sink/config/FileSinkConfig.java#L210-L239","documentation":"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.","triggerScenarios":"Configuring a file sink with file_format_type = \"binary\" together with schema_evolution_enabled = true.","commonSituations":"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.","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."],"exampleFix":"// before\nfile_format_type = \"binary\"\nschema_evolution_enabled = true\n// after\nfile_format_type = \"binary\"\nschema_evolution_enabled = false","handlingStrategy":"validation","validationCode":"if (config.schemaEvolutionEnabled && \"binary\".equals(config.fileFormatType)) {\n  throw new IllegalArgumentException(\"schema_evolution_enabled is unsupported for binary format\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["file-sink","schema-evolution","binary-format"],"backgroundTag":"unsupported-config-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}