{"record":{"id":"d54b02dfc6399bd5","repo":"apache/seatunnel","slug":"illegal-argument-d54b02","errorCode":"ILLEGAL_ARGUMENT","errorMessage":"File sink connector not support this file type [%s], please check your config","messagePattern":"File sink connector not support this file type \\[(.+?)\\], please check your config","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/writer/WriteStrategyFactory.java","lineNumber":41,"sourceCode":"import org.apache.seatunnel.connectors.seatunnel.file.sink.config.FileSinkConfig;\n\nimport lombok.extern.slf4j.Slf4j;\n\n@Slf4j\npublic class WriteStrategyFactory {\n\n    private WriteStrategyFactory() {}\n\n    public static WriteStrategy of(String fileType, FileSinkConfig fileSinkConfig) {\n        try {\n            FileFormat fileFormat = FileFormat.valueOf(fileType.toUpperCase());\n            return fileFormat.getWriteStrategy(fileSinkConfig);\n        } catch (IllegalArgumentException e) {\n            String errorMsg =\n                    String.format(\n                            \"File sink connector not support this file type [%s], please check your config\",\n                            fileType);\n            throw new FileConnectorException(CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT, errorMsg);\n        }\n    }\n\n    public static WriteStrategy of(FileFormat fileFormat, FileSinkConfig fileSinkConfig) {\n        return fileFormat.getWriteStrategy(fileSinkConfig);\n    }\n}\n","sourceCodeStart":23,"sourceCodeEnd":49,"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/writer/WriteStrategyFactory.java#L23-L49","documentation":"WriteStrategyFactory.of(FileSinkConfig, fileType) resolves a WriteStrategy from the FileFormat enum via fileFormat.getWriteStrategy(fileSinkConfig). FileFormat.getWriteStrategy throws IllegalArgumentException for formats without a sink strategy, and the factory wraps it as FileConnectorException with ILLEGAL_ARGUMENT, telling the user the configured file type is not supported by the file sink. This is a configuration-time validation error.","triggerScenarios":"Setting sink file_format/type to a format that has no write strategy (e.g. formats only supported for reading, or a typo'd/unregistered value) when the sink plugin initializes.","commonSituations":"Typo in file_format config (e.g. 'parquet ' with whitespace or wrong case handled upstream); using a read-only format for a sink; copying a source config to a sink; custom format plugin registered for source only; version where the format's write strategy was not yet implemented.","solutions":["Check the configured file_format value and use a sink-supported format: text, csv, parquet, orc, json","Fix typos or stray whitespace in the file_format config key/value","Consult FileFormat.getWriteStrategy to confirm which formats have write strategies in your version","If you need a custom format, register it in FileFormat with a WriteStrategy implementation"],"exampleFix":"// before\nsink {\n  File {\n    file_format = \"lzo\"   // no sink strategy\n  }\n}\n// after\nsink {\n  File {\n    file_format = \"parquet\"\n  }\n}","handlingStrategy":"validation","validationCode":"if (!Set.of(\"text\",\"csv\",\"parquet\",\"orc\",\"json\").contains(config.getString(\"file_format\").toLowerCase().trim())) throw new ConfigException(\"unsupported sink file_format\");","typeGuard":null,"tryCatchPattern":"try { WriteStrategyFactory.of(fileSinkConfig, fileType); } catch (FileConnectorException e) { if (e.getMessage().contains(\"not support this file type\")) { /* fix file_format in config */ } }","preventionTips":["Validate file_format against supported sink formats before job submit","Avoid trailing whitespace/case issues in config values","Verify format write support for your SeaTunnel version"],"tags":["config","file-format","file-sink","validation"],"backgroundTag":"invalid-enum-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}