{"record":{"id":"3cf8a5921e318c6d","repo":"apache/dolphinscheduler","slug":"sagemaker-datasource-param-is-not-valid-3cf8a5","errorCode":null,"errorMessage":"sagemaker datasource param is not valid","messagePattern":"sagemaker datasource param is not valid","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sagemaker/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sagemaker/param/SagemakerDataSourceProcessor.java","lineNumber":53,"sourceCode":"\nimport com.google.auto.service.AutoService;\n\n@AutoService(DataSourceProcessor.class)\n@Slf4j\npublic class SagemakerDataSourceProcessor extends AbstractDataSourceProcessor {\n\n    @Override\n    public BaseDataSourceParamDTO castDatasourceParamDTO(String paramJson) {\n        return JSONUtils.parseObject(paramJson, SagemakerDataSourceParamDTO.class);\n    }\n\n    @Override\n    public void checkDatasourceParam(BaseDataSourceParamDTO datasourceParamDTO) {\n        SagemakerDataSourceParamDTO sageMakerDataSourceParamDTO = (SagemakerDataSourceParamDTO) datasourceParamDTO;\n        if (StringUtils.isEmpty(sageMakerDataSourceParamDTO.getUserName())\n                || StringUtils.isEmpty(sageMakerDataSourceParamDTO.getPassword())\n                || StringUtils.isEmpty(sageMakerDataSourceParamDTO.getAwsRegion())) {\n            throw new IllegalArgumentException(\"sagemaker datasource param is not valid\");\n        }\n    }\n\n    @Override\n    public String getDatasourceUniqueId(ConnectionParam connectionParam, DbType dbType) {\n        SagemakerConnectionParam baseConnectionParam = (SagemakerConnectionParam) connectionParam;\n        return MessageFormat.format(\"{0}@{1}@{2}@{3}\", dbType.getName(),\n                PasswordUtils.encodePassword(baseConnectionParam.getUserName()),\n                PasswordUtils.encodePassword(baseConnectionParam.getPassword()),\n                PasswordUtils.encodePassword(baseConnectionParam.getAwsRegion()));\n    }\n\n    // SageMaker\n    @Override\n    public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {\n        SagemakerConnectionParam connectionParams = (SagemakerConnectionParam) createConnectionParams(connectionJson);\n        SagemakerDataSourceParamDTO sagemakerDataSourceParamDTO = new SagemakerDataSourceParamDTO();\n","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sagemaker/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sagemaker/param/SagemakerDataSourceProcessor.java#L35-L71","documentation":"Validation in SagemakerDataSourceProcessor.checkDatasourceParam: the SageMaker datasource definition is rejected when any of userName, password or awsRegion is empty — these three are the required AWS credential fields for the SageMaker task plugin, and missing awsRegion in particular means the client cannot target an AWS region.","triggerScenarios":"Thrown at dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sagemaker/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sagemaker/param/SagemakerDataSourceProcessor.java:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fill in userName and password (AWS access key/secret) in the datasource form","Set awsRegion to a valid AWS region such as us-east-1","Re-save the datasource and use the connection-test action to confirm"],"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-14T05:17:10.506Z"}