apache/dolphinscheduler · error · TaskException

procedure task params is not valid

Error message

procedure task params is not valid

What it means

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.

Source

Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java:76

    private final TaskExecutionContext taskExecutionContext;

    private final ProcedureTaskExecutionContext procedureTaskExecutionContext;

    private volatile Statement sessionStatement;

    public ProcedureTask(TaskExecutionContext taskExecutionContext) {
        super(taskExecutionContext);

        this.taskExecutionContext = taskExecutionContext;

        this.procedureParameters =
                JSONUtils.parseObject(taskExecutionContext.getTaskParams(), ProcedureParameters.class);
        log.info("Initialize procedure task params {}", JSONUtils.toPrettyJsonString(procedureParameters));

        // check parameters
        if (procedureParameters == null || !procedureParameters.checkParameters()) {
            throw new TaskException("procedure task params is not valid");
        }

        procedureTaskExecutionContext =
                procedureParameters.generateExtendedContext(taskExecutionContext.getResourceParametersHelper());
    }

    @Override
    public void handle(TaskCallBack taskCallBack) throws TaskException {
        log.info("procedure type : {}, datasource : {}, method : {} , localParams : {}",
                procedureParameters.getType(),
                procedureParameters.getDatasource(),
                procedureParameters.getMethod(),
                procedureParameters.getLocalParams());

        DbType dbType = DbType.valueOf(procedureParameters.getType());
        DataSourceProcessor dataSourceProcessor = DataSourcePluginManager.getDataSourceProcessor(dbType);
        ConnectionParam connectionParams =
                dataSourceProcessor.createConnectionParams(procedureTaskExecutionContext.getConnectionParams());

View on GitHub (pinned to 02eac45a1b)

Solutions

  1. Complete the required stored-procedure fields (method, datasource) in the task definition
  2. Ensure taskParams JSON deserializes into ProcedureParameters — check field names
  3. Validate on save in the UI
Defensive patterns

Strategy: validation

When it happens

Trigger: 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.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06). Data as JSON: /api/errors/3c810fed456d0942. Report an issue: GitHub.