{"record":{"id":"294bd3d5dea0c2cb","repo":"apache/dolphinscheduler","slug":"mapreduce-task-params-is-not-valid","errorCode":null,"errorMessage":"mapreduce task params is not valid","messagePattern":"mapreduce task params is not valid","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-mr/src/main/java/org/apache/dolphinscheduler/plugin/task/mr/MapReduceTask.java","lineNumber":61,"sourceCode":"\n    private MapReduceParameters mapreduceParameters;\n\n    private final TaskExecutionContext taskExecutionContext;\n\n    public MapReduceTask(TaskExecutionContext taskExecutionContext) {\n        super(taskExecutionContext);\n        this.taskExecutionContext = taskExecutionContext;\n    }\n\n    @Override\n    public void init() {\n\n        this.mapreduceParameters =\n                JSONUtils.parseObject(taskExecutionContext.getTaskParams(), MapReduceParameters.class);\n\n        // check parameters\n        if (mapreduceParameters == null || !mapreduceParameters.checkParameters()) {\n            throw new RuntimeException(\"mapreduce task params is not valid\");\n        }\n\n        // replace placeholder,and combine local and global parameters\n        Map<String, Property> paramsMap = taskExecutionContext.getPrepareParamsMap();\n\n        String args = ParameterUtils.convertParameterPlaceholders(mapreduceParameters.getMainArgs(),\n                ParameterUtils.convert(paramsMap));\n        mapreduceParameters.setMainArgs(args);\n        if (mapreduceParameters.getProgramType() != null\n                && mapreduceParameters.getProgramType() == ProgramType.PYTHON) {\n            String others = ParameterUtils.convertParameterPlaceholders(mapreduceParameters.getOthers(),\n                    ParameterUtils.convert(paramsMap));\n            mapreduceParameters.setOthers(others);\n        }\n        log.info(\"Initialize mapreduce task params {}\", JSONUtils.toPrettyJsonString(mapreduceParameters));\n    }\n\n    /**","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-mr/src/main/java/org/apache/dolphinscheduler/plugin/task/mr/MapReduceTask.java#L43-L79","documentation":"A parameter validation guard in MapReduceTask.init: mapreduceParameters is null after parsing taskParams (invalid JSON) or checkParameters() failed because required fields (main jar, main class, program arguments as applicable) are missing. The offending input is the taskParams JSON in the task definition; the task fails before the hadoop command is built.","triggerScenarios":"Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-mr/src/main/java/org/apache/dolphinscheduler/plugin/task/mr/MapReduceTask.java:61 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Complete the required MapReduce fields (mainJar, mainClass) in the task definition","Ensure taskParams JSON deserializes into MapReduceParameters — check field names/types","Validate on save in the UI to surface missing fields before execution"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}