apache/dolphinscheduler · error · IllegalArgumentException
Cannot parse task parameters:
Error message
Cannot parse task parameters:
What it means
TaskPluginManager.parseTaskParameters throws IllegalArgumentException when taskChannel.parseParameters(taskParams) returns null for the given type. The task plugin could not deserialize the JSON parameter string into its parameter object.
Source
Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskPluginManager.java:98
public static boolean checkTaskParameters(String taskType, String taskParams) {
AbstractParameters abstractParameters = parseTaskParameters(taskType, taskParams);
return abstractParameters.checkParameters();
}
/**
* Parse the task parameters
* @param taskType task type, cannot be null
* @param taskParams task parameters
* @return AbstractParameters
* @throws IllegalArgumentException if the TaskChannel is not found
* @throws IllegalArgumentException if cannot deserialize the task parameters
*/
public static AbstractParameters parseTaskParameters(String taskType, String taskParams) {
checkNotNull(taskType, "taskType cannot be null");
TaskChannel taskChannel = getTaskChannel(taskType);
AbstractParameters abstractParameters = taskChannel.parseParameters(taskParams);
if (abstractParameters == null) {
throw new IllegalArgumentException("Cannot parse task parameters: " + taskParams + " for : " + taskType);
}
return abstractParameters;
}
}
View on GitHub (pinned to 02eac45a1b)
Solutions
- Validate taskParams is well-formed JSON matching the plugin's parameter schema
- Print/inspect the full message: it includes both params and the task type
- Re-save the task definition in the UI to regenerate canonical params
- Check for version migration issues between the workflow definition and the installed plugin
- Ensure the correct taskType is passed so the right channel parses the params
Defensive patterns
Strategy: validation
Validate before calling
// before parsing
ObjectNode params = new ObjectMapper().readTree(taskParams);
if (params == null || !params.isObject() || params.size() == 0) {
throw new IllegalArgumentException("Invalid task params JSON: " + taskParams);
}
AbstractParameters p = TaskPluginManager.parseTaskParameters(taskType, taskParams); Try / catch
try {
AbstractParameters params = TaskPluginManager.parseTaskParameters(taskType, taskParams);
} catch (IllegalArgumentException e) {
log.error("Param parse failed: {}", e.getMessage());
// message includes both params and type — compare against plugin schema
} Prevention
- Validate taskParams JSON against the plugin's parameter schema before submit
- Regenerate task definitions via the UI after upgrades (schema drift)
- Never hand-edit taskParams without validating JSON
- Ensure taskType matches the params structure being passed
When it happens
Trigger: parseParameters returns null — taskParams JSON does not match the plugin's expected parameter class (wrong/missing fields, non-JSON string, empty params), or getTaskChannel resolved a plugin whose parser rejects the payload.
Common situations: Task params edited by hand with invalid JSON; workflow definitions migrated across versions where the parameter schema changed; passing a params string of one task type to another type's channel.
Understand the failure class
Background: "failed to unmarshal" / json.Unmarshal errors: why parsing a response into a Go struct fails and how to fix it — this error's family across 23 libraries.
Related errors
- String json deserialization exception.
- Json deserialization exception.
- ${e.getMessage()}
- itemsList is null
- headerParams is not a valid json
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/606d4e4b6f29bf04.
Report an issue: GitHub.