{"record":{"id":"787f15c15f689b31","repo":"apache/seatunnel","slug":"enable-file-split-true-but-file-format-type-doe","errorCode":null,"errorMessage":"enable_file_split=true but file_format_type={} does not support file split. Falling back to non-splitting mode.","messagePattern":"enable_file_split=true but file_format_type=(.+?) does not support file split\\. Falling back to non-splitting mode\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/split/FileSplitStrategyFactory.java","lineNumber":44,"sourceCode":"import org.apache.seatunnel.connectors.seatunnel.file.exception.FileConnectorErrorCode;\n\nimport lombok.extern.slf4j.Slf4j;\n\nimport java.util.Objects;\n\nimport static org.apache.seatunnel.connectors.seatunnel.file.config.FileBaseSourceOptions.DEFAULT_ROW_DELIMITER;\n\n@Slf4j\npublic class FileSplitStrategyFactory {\n\n    public static FileSplitStrategy initFileSplitStrategy(\n            ReadonlyConfig readonlyConfig, HadoopConf hadoopConf) {\n        if (!readonlyConfig.get(FileBaseSourceOptions.ENABLE_FILE_SPLIT)) {\n            return new DefaultFileSplitStrategy();\n        }\n        FileFormat fileFormat = readonlyConfig.get(FileBaseSourceOptions.FILE_FORMAT_TYPE);\n        if (!fileFormat.supportFileSplit()) {\n            log.warn(\n                    \"enable_file_split=true but file_format_type={} does not support file split. \"\n                            + \"Falling back to non-splitting mode.\",\n                    fileFormat);\n            return new DefaultFileSplitStrategy();\n        }\n        CompressFormat compressCodec = readonlyConfig.get(FileBaseSourceOptions.COMPRESS_CODEC);\n        ArchiveCompressFormat archiveCompressCodec =\n                readonlyConfig.get(FileBaseSourceOptions.ARCHIVE_COMPRESS_CODEC);\n        if (compressCodec != CompressFormat.NONE\n                || archiveCompressCodec != ArchiveCompressFormat.NONE) {\n            log.warn(\n                    \"enable_file_split=true but compress_codec={} or archive_compress_codec={} is not NONE. \"\n                            + \"Falling back to non-splitting mode.\",\n                    compressCodec,\n                    archiveCompressCodec);\n            return new DefaultFileSplitStrategy();\n        }\n","sourceCodeStart":26,"sourceCodeEnd":62,"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/source/split/FileSplitStrategyFactory.java#L26-L62","documentation":"WARN logged by FileSplitStrategyFactory.initFileSplitStrategy when the user enabled file splitting (enable_file_split=true) but the chosen file_format_type's FileFormat does not support splitting. The factory silently degrades to DefaultFileSplitStrategy (whole-file reads), so the job runs but without the requested parallel per-file splitting.","triggerScenarios":"Config with enable_file_split=true and a FILE_FORMAT_TYPE whose format reports supportFileSplit()==false — e.g. CSV/text formats (or other formats lacking splittable readers) rather than splittable columnar formats.","commonSituations":"User expects text/CSV files to be split for parallelism; enabling the option while reading formats that only support whole-file reads; copying an option set from a Parquet/ORC job to a CSV job.","solutions":["Set file_format_type to a split-supporting format (e.g. Parquet, ORC) if you need split-based parallelism.","Otherwise accept the fallback — remove enable_file_split=true from config to make intent explicit and silence the warning.","Increase source parallelism via other means (more files/partitions) if whole-file mode is required."],"exampleFix":"// before\nenable_file_split = true\nfile_format_type = \"csv\"\n// after (either disable the option...)\nfile_format_type = \"csv\"\n// ...or use a splittable format\nenable_file_split = true\nfile_format_type = \"parquet\"","handlingStrategy":"validation","validationCode":"// Before enabling split mode, check format support\nFileFormat fmt = ReadonlyConfig get FILE_FORMAT_TYPE;\nif (enableFileSplit && !fmt.supportFileSplit()) {\n    throw new IllegalArgumentException(\n        \"file_format_type=\" + fmt + \" does not support file split\");\n}","typeGuard":"// Java-style check\nif (fileFormat instanceof SplittableFileFormat) { /* safe to enable split */ }","tryCatchPattern":null,"preventionTips":["Only set enable_file_split=true for splittable formats (Parquet, ORC).","Validate file_format_type against format capabilities before deploying configs.","Remove enable_file_split=true when using text/CSV to keep configs intention-revealing."],"tags":["configuration","file","split","unsupported-format","log-warning"],"backgroundTag":"invalid-config-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}