{"record":{"id":"3f0e22db1c80b322","repo":"apache/dolphinscheduler","slug":"chunjun-task-params-is-not-valid","errorCode":null,"errorMessage":"chunjun task params is not valid","messagePattern":"chunjun task params is not valid","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-chunjun/src/main/java/org/apache/dolphinscheduler/plugin/task/chunjun/ChunJunTask.java","lineNumber":78,"sourceCode":"    private ChunJunParameters chunJunParameters;\n\n    private final ShellCommandExecutor shellCommandExecutor;\n\n    public ChunJunTask(TaskExecutionContext taskExecutionContext) {\n        super(taskExecutionContext);\n        this.shellCommandExecutor = new ShellCommandExecutor(taskExecutionContext);\n    }\n\n    /**\n     * init chunjun config\n     */\n    @Override\n    public void init() {\n        chunJunParameters = JSONUtils.parseObject(taskRequest.getTaskParams(), ChunJunParameters.class);\n        log.info(\"Initialize chunjun task params {}\", JSONUtils.toPrettyJsonString(taskRequest.getTaskParams()));\n\n        if (!chunJunParameters.checkParameters()) {\n            throw new RuntimeException(\"chunjun task params is not valid\");\n        }\n    }\n\n    @SuppressWarnings(\"unchecked\")\n    @Override\n    public void handle(TaskCallBack taskCallBack) throws TaskException {\n        try {\n            Map<String, Property> paramsMap = taskRequest.getPrepareParamsMap();\n\n            IShellInterceptorBuilder<?, ?> shellActuatorBuilder = ShellInterceptorBuilderFactory.newBuilder()\n                    .properties(ParameterUtils.convert(paramsMap))\n                    .appendScript(buildCommand(buildChunJunJsonFile(paramsMap)));\n            TaskResponse commandExecuteResult = shellCommandExecutor.run(shellActuatorBuilder, taskCallBack);\n\n            setExitStatusCode(commandExecuteResult.getExitStatusCode());\n\n            // todo get applicationId\n            setAppIds(String.join(TaskConstants.COMMA, Collections.emptySet()));","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-chunjun/src/main/java/org/apache/dolphinscheduler/plugin/task/chunjun/ChunJunTask.java#L60-L96","documentation":"ChunJunTask.init() parses taskParams JSON into ChunJunParameters and calls checkParameters(); when validation fails it throws RuntimeException 'chunjun task params is not valid'. This means the JSON parsed but required ChunJun parameters (e.g. deployMode, others, and job/script inputs) are absent or inconsistent.","triggerScenarios":"Creating a ChunJun task whose taskParams JSON is missing required fields checked by ChunJunParameters.checkParameters() — for instance neither 'job' nor 'json' script content is provided, or required plugin configuration fields are blank.","commonSituations":"Users pasting a ChunJun Flink SQL/json job into the wrong parameter field; leaving the job content empty; workflow saved via API with hand-written taskParams JSON missing keys; UI/plugin version mismatch dropping new required fields.","solutions":["Open the task definition and fill in all required ChunJun parameter fields (job/script content, deploy mode, etc.).","Validate the taskParams JSON against ChunJunParameters fields (JSONUtils round-trip) before submitting.","Inspect ChunJunParameters.checkParameters() to see exactly which flags must be true.","If using the API, mirror a working task's JSON structure rather than hand-crafting it.","Ensure the plugin version's parameter schema matches the workflow definition."],"exampleFix":"// before\ntaskParams = {\n  \"deployMode\": \"local\"\n  // no job content\n}\n// after\ntaskParams = {\n  \"deployMode\": \"local\",\n  \"json\": \"{\\\"job\\\":{\\\"content\\\":[...],\\\"setting\\\":{...}}}\"\n}","handlingStrategy":"validation","validationCode":"ChunJunParameters p = JSONUtils.parseObject(taskParams, ChunJunParameters.class);\nif (p == null || !p.checkParameters()) {\n    throw new IllegalArgumentException(\"chunjun taskParams missing required fields\");\n}","typeGuard":"boolean isValidChunjunParams(String json) {\n    ChunJunParameters p = JSONUtils.parseObject(json, ChunJunParameters.class);\n    return p != null && p.checkParameters();\n}","tryCatchPattern":"try {\n    task.init();\n} catch (RuntimeException e) {\n    log.error(\"invalid chunjun params: {}\", taskParams, e);\n    throw e;\n}","preventionTips":["Always provide the ChunJun job/script content (job or json field) in the task form.","Create tasks through the UI/schema rather than hand-writing taskParams JSON.","Round-trip taskParams through ChunJunParameters in CI to catch schema drift."],"tags":["chunjun","task-parameters","validation"],"backgroundTag":"schema-validation-failed","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"}