{"record":{"id":"4218fbeed4ea321e","repo":"apache/seatunnel","slug":"seatunnel-job-on-st-engine-submitted-target-only-s","errorCode":null,"errorMessage":"SeaTunnel job on st-engine submitted target only support these options: [local, cluster]","messagePattern":"SeaTunnel job on st-engine submitted target only support these options: \\[local, cluster\\]","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-core/seatunnel-starter/src/main/java/org/apache/seatunnel/core/starter/seatunnel/args/ClientCommandArgs.java","lineNumber":338,"sourceCode":"            }\n        }\n    }\n\n    public static class SeaTunnelMasterTargetConverter implements IStringConverter<MasterType> {\n        private static final List<MasterType> MASTER_TYPE_LIST = new ArrayList<>();\n\n        static {\n            MASTER_TYPE_LIST.add(MasterType.LOCAL);\n            MASTER_TYPE_LIST.add(MasterType.CLUSTER);\n        }\n\n        @Override\n        public MasterType convert(String value) {\n            MasterType masterType = MasterType.valueOf(value.toUpperCase());\n            if (MASTER_TYPE_LIST.contains(masterType)) {\n                return masterType;\n            } else {\n                throw new IllegalArgumentException(\n                        \"SeaTunnel job on st-engine submitted target only \"\n                                + \"support these options: [local, cluster]\");\n            }\n        }\n    }\n\n    @Slf4j\n    public static class MasterTypeValidator implements IParameterValidator {\n        @Override\n        public void validate(String name, String value) throws ParameterException {\n            if (name.equals(\"-e\") || name.equals(\"--deploy-mode\")) {\n                log.warn(\n                        \"\\n******************************************************************************************\"\n                                + \"\\n-e and --deploy-mode deprecated in 2.3.1, please use -m and --master instead of it\"\n                                + \"\\n******************************************************************************************\");\n            }\n        }\n    }","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-core/seatunnel-starter/src/main/java/org/apache/seatunnel/core/starter/seatunnel/args/ClientCommandArgs.java#L320-L356","documentation":"SeaTunnelMasterTargetConverter.convert() throws this IllegalArgumentException when the --master value maps to a MasterType that is not in the whitelist [local, cluster]. The MasterType enum may contain more values (e.g. other deploy targets), but st-engine submission accepts only these two.","triggerScenarios":"Running `--master standalone`, `--master k8s`, or any value that uppercases to a valid MasterType outside the whitelist; also `--master` with a value not in the enum at all (which fails earlier in valueOf with a different message).","commonSituations":"Copying Flink/Spark deploy-mode values (yarn, k8s) into a Zeta/st-engine command; confusing st-engine's master options with those of other engines.","solutions":["Use --master local or --master cluster","Remove --master if the default (client/cluster per your setup) is acceptable","Validate the value against [local, cluster] before invoking the CLI"],"exampleFix":"// before\n--master yarn\n// after\n--master cluster","handlingStrategy":"validation","validationCode":"const master = value.toUpperCase();\nif (master !== 'LOCAL' && master !== 'CLUSTER') {\n  throw new Error(`st-engine --master supports only local|cluster, got: ${value}`);\n}","typeGuard":"const isZetaMaster = (v) => ['local','cluster'].includes(String(v).toLowerCase());","tryCatchPattern":"try {\n  seatunnel.run(args);\n} catch (IllegalArgumentException e) {\n  if (e.getMessage().contains('[local, cluster]')) {\n    args.set('--master', 'cluster');\n  }\n}","preventionTips":["Do not reuse Flink/Spark deploy-mode values (yarn, k8s) for Zeta commands","Whitelist only local/cluster in wrappers targeting st-engine","Keep per-engine command templates separate"],"tags":["cli","master","argument-parsing"],"backgroundTag":"unsupported-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"}