{"record":{"id":"3c810fed456d0942","repo":"apache/dolphinscheduler","slug":"procedure-task-params-is-not-valid","errorCode":null,"errorMessage":"procedure task params is not valid","messagePattern":"procedure task params is not valid","errorType":"validation","errorClass":"TaskException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java","lineNumber":76,"sourceCode":"\n    private final TaskExecutionContext taskExecutionContext;\n\n    private final ProcedureTaskExecutionContext procedureTaskExecutionContext;\n\n    private volatile Statement sessionStatement;\n\n    public ProcedureTask(TaskExecutionContext taskExecutionContext) {\n        super(taskExecutionContext);\n\n        this.taskExecutionContext = taskExecutionContext;\n\n        this.procedureParameters =\n                JSONUtils.parseObject(taskExecutionContext.getTaskParams(), ProcedureParameters.class);\n        log.info(\"Initialize procedure task params {}\", JSONUtils.toPrettyJsonString(procedureParameters));\n\n        // check parameters\n        if (procedureParameters == null || !procedureParameters.checkParameters()) {\n            throw new TaskException(\"procedure task params is not valid\");\n        }\n\n        procedureTaskExecutionContext =\n                procedureParameters.generateExtendedContext(taskExecutionContext.getResourceParametersHelper());\n    }\n\n    @Override\n    public void handle(TaskCallBack taskCallBack) throws TaskException {\n        log.info(\"procedure type : {}, datasource : {}, method : {} , localParams : {}\",\n                procedureParameters.getType(),\n                procedureParameters.getDatasource(),\n                procedureParameters.getMethod(),\n                procedureParameters.getLocalParams());\n\n        DbType dbType = DbType.valueOf(procedureParameters.getType());\n        DataSourceProcessor dataSourceProcessor = DataSourcePluginManager.getDataSourceProcessor(dbType);\n        ConnectionParam connectionParams =\n                dataSourceProcessor.createConnectionParams(procedureTaskExecutionContext.getConnectionParams());","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java#L58-L94","documentation":"A parameter validation guard in the ProcedureTask constructor: procedureParameters is null after parsing taskParams, or checkParameters() found required fields missing — the stored procedure method (procedureName/ methods mapping) or datasource is unset. The offending input is the taskParams JSON; failure occurs at task construction, before any JDBC connection is opened.","triggerScenarios":"Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java:76 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Complete the required stored-procedure fields (method, datasource) in the task definition","Ensure taskParams JSON deserializes into ProcedureParameters — check field names","Validate on save in the UI"],"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"}