{"record":{"id":"44574d15eaa04be6","repo":"apache/dolphinscheduler","slug":"unsupported-startup-script-name","errorCode":null,"errorMessage":"Unsupported startup script name:","messagePattern":"Unsupported startup script name:","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java","lineNumber":49,"sourceCode":"\npublic class SeatunnelTaskChannel implements TaskChannel {\n\n    @Override\n    public SeatunnelTask createTask(TaskExecutionContext taskRequest) {\n        SeatunnelParameters seatunnelParameters =\n                JSONUtils.parseObject(taskRequest.getTaskParams(), SeatunnelParameters.class);\n        assert seatunnelParameters != null;\n        String startupScript = seatunnelParameters.getStartupScript();\n        if (startupScript.contains(STARTUP_SCRIPT_SPARK)) {\n            return new SeatunnelSparkTask(taskRequest);\n        }\n        if (startupScript.contains(STARTUP_SCRIPT_FLINK)) {\n            return new SeatunnelFlinkTask(taskRequest);\n        }\n        if (startupScript.contains(STARTUP_SCRIPT_SEATUNNEL)) {\n            return new SeatunnelEngineTask(taskRequest);\n        }\n        throw new IllegalArgumentException(\"Unsupported startup script name:\" + seatunnelParameters.getStartupScript());\n    }\n\n    @Override\n    public AbstractParameters parseParameters(String taskParams) {\n        return JSONUtils.parseObject(taskParams, SeatunnelParameters.class);\n    }\n\n}\n","sourceCodeStart":31,"sourceCodeEnd":58,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-seatunnel/src/main/java/org/apache/dolphinscheduler/plugin/task/seatunnel/SeatunnelTaskChannel.java#L31-L58","documentation":"SeatunnelTaskChannel.createTask() dispatches to SeatunnelFlinkTask or SeatunnelEngineTask based on the startupScript string; when it matches neither STARTUP_SCRIPT_FLINK nor STARTUP_SCRIPT_SEATUNNEL it throws IllegalArgumentException(\"Unsupported startup script name:...\"). It is a fail-fast guard against an unknown SeaTunnel engine variant.","triggerScenarios":"Task params carry a startupScript value other than flink/run/seatunnel (or any string containing the recognized constants) — e.g. 'spark' on a build without the spark task class, empty string, or a custom script name.","commonSituations":"Users choose the Spark engine in the UI while the deployed plugin only supports flink and seatunnel(zeta), task params edited by hand, or version drift where newer UI writes a startup script the older worker plugin doesn't recognize.","solutions":["Set the task's startup script to one of the supported values: 'flink' or 'seatunnel.sh' (Zeta engine).","If you intend to run Spark, upgrade the dolphinscheduler-task-seatunnel plugin/worker to a version that registers the Spark task type.","Keep worker and master plugin versions in sync so the UI's options match what the worker recognizes.","Check for whitespace/case mistakes in the stored startupScript value."],"exampleFix":"// before\n{\"startupScript\":\"spark\"} // unsupported by installed plugin\n// after\n{\"startupScript\":\"seatunnel.sh\"}","handlingStrategy":"validation","validationCode":"Set<String> supported = Set.of(\"flink\", \"seatunnel\");\nString script = seatunnelParameters.getStartupScript();\nif (script == null || supported.stream().noneMatch(script::contains)) {\n    throw new IllegalArgumentException(\"startupScript must contain 'flink' or 'seatunnel', got: \" + script);\n}","typeGuard":null,"tryCatchPattern":"try {\n    Task t = channel.createTask(taskRequest);\n} catch (IllegalArgumentException e) {\n    log.error(\"Unsupported SeaTunnel startup script; use flink or seatunnel.sh\", e);\n}","preventionTips":["Choose only engine options supported by the installed plugin version","Keep master and worker plugin versions in sync","Avoid hand-editing startupScript values in stored task params"],"tags":["seatunnel","startup-script","unsupported"],"backgroundTag":"invalid-enum-value","analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}