apache/dolphinscheduler · error · SagemakerTaskException
Sagemaker task params is empty
Error message
Sagemaker task params is empty
What it means
SagemakerTask.init parses taskRequest.getTaskParams() into SagemakerParameters with JSONUtils.parseObject; if the result is null (empty, missing, or unparseable params JSON) it throws SagemakerTaskException("Sagemaker task params is empty"). The task cannot proceed without its parameter object.
Source
Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-sagemaker/src/main/java/org/apache/dolphinscheduler/plugin/task/sagemaker/SagemakerTask.java:92
private SagemakerTaskExecutionContext sagemakerTaskExecutionContext;
private TaskExecutionContext taskExecutionContext;
public SagemakerTask(TaskExecutionContext taskExecutionContext) {
super(taskExecutionContext);
this.taskExecutionContext = taskExecutionContext;
}
@Override
public List<String> getApplicationIds() throws TaskException {
return Collections.emptyList();
}
@Override
public void init() {
parameters = JSONUtils.parseObject(taskRequest.getTaskParams(), SagemakerParameters.class);
if (parameters == null) {
throw new SagemakerTaskException("Sagemaker task params is empty");
}
if (!parameters.checkParameters()) {
throw new SagemakerTaskException("Sagemaker task params is not valid");
}
sagemakerTaskExecutionContext =
parameters.generateExtendedContext(taskExecutionContext.getResourceParametersHelper());
sagemakerConnectionParam =
(SagemakerConnectionParam) DataSourceUtils.buildConnectionParams(DbType.valueOf(parameters.getType()),
sagemakerTaskExecutionContext.getConnectionParams());
parameters.setUsername(sagemakerConnectionParam.getUserName());
parameters.setPassword(sagemakerConnectionParam.getPassword());
parameters.setAwsRegion(sagemakerConnectionParam.getAwsRegion());
log.info("Initialize Sagemaker task params {}", JSONUtils.toPrettyJsonString(parameters));
client = createClient();
utils = new PipelineUtils();
}
View on GitHub (pinned to 02eac45a1b)
Solutions
- Open the Sagemaker task definition and re-enter/save the parameters so taskParams is populated.
- Inspect the task's taskParams JSON in the database/workflow definition for emptiness or syntax errors.
- Check server/plugin version consistency so param JSON field names match SagemakerParameters expectations.
- Validate the JSON with a linter if the workflow was hand-edited, then re-import the workflow.
Example fix
// before: empty params in task definition
{"sagemakerTaskParams":null}
// after: provide required params
{"sagemakerRequestJson":"{\"PipelineName\":\"my-pipeline\",...}","resourceList":[]} Defensive patterns
Strategy: validation
Validate before calling
SagemakerParameters p = JSONUtils.parseObject(taskParams, SagemakerParameters.class);
if (p == null || !p.checkParameters()) {
throw new IllegalArgumentException("Sagemaker taskParams missing or invalid — check workflow definition JSON");
} Type guard
boolean hasParams(SagemakerParameters p) { return p != null && p.checkParameters(); } Try / catch
try {
sagemakerTask.init();
} catch (SagemakerTaskException e) {
logger.error("Sagemaker params problem: {}. Dump taskParams for diagnosis", e.getMessage());
throw e;
} Prevention
- Fill in all Sagemaker task parameters in the UI before saving the workflow.
- Validate taskParams JSON after any direct database/workflow-JSON edits.
- Keep plugin versions consistent across master, worker, and UI to avoid deserialization drift.
When it happens
Trigger: init() is called with taskParams that are null, an empty string, or JSON that fails to deserialize into SagemakerParameters, causing JSONUtils.parseObject to return null.
Common situations: Sagemaker task saved with no parameters; workflow definition JSON corrupted or hand-edited; upgrading from a version with different param field names so deserialization yields null; JSON syntax errors in taskParams.
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
- headerParams is not a valid json
- bodyParams is not a valid json
- Failed to parse Switch task params: {taskParams}
- Failed to parse Condition task params: {taskParams}
- ${e.getMessage()}
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/85e8bc8f10de1197.
Report an issue: GitHub.