apache/dolphinscheduler · error · IllegalArgumentException

zeppelin datasource param is not valid

Error message

zeppelin datasource param is not valid

What it means

Validation in ZeppelinDataSourceProcessor.checkDatasourceParam: the Zeppelin datasource is rejected when restEndpoint or userName is empty — the REST endpoint is required to reach the Zeppelin server and the user is required for Zeppelin authentication.

Source

Thrown at dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/datasource/zeppelin/param/ZeppelinDataSourceProcessor.java:52

import lombok.extern.slf4j.Slf4j;

import com.google.auto.service.AutoService;

@AutoService(DataSourceProcessor.class)
@Slf4j
public class ZeppelinDataSourceProcessor extends AbstractDataSourceProcessor {

    @Override
    public BaseDataSourceParamDTO castDatasourceParamDTO(String paramJson) {
        return JSONUtils.parseObject(paramJson, ZeppelinDataSourceParamDTO.class);
    }

    @Override
    public void checkDatasourceParam(BaseDataSourceParamDTO datasourceParamDTO) {
        ZeppelinDataSourceParamDTO zeppelinDataSourceParamDTO = (ZeppelinDataSourceParamDTO) datasourceParamDTO;
        if (StringUtils.isEmpty(zeppelinDataSourceParamDTO.getRestEndpoint())
                || StringUtils.isEmpty(zeppelinDataSourceParamDTO.getUserName())) {
            throw new IllegalArgumentException("zeppelin datasource param is not valid");
        }
    }

    @Override
    public String getDatasourceUniqueId(ConnectionParam connectionParam, DbType dbType) {
        ZeppelinConnectionParam baseConnectionParam = (ZeppelinConnectionParam) connectionParam;
        return MessageFormat.format("{0}@{1}@{2}@{3}", dbType.getName(), baseConnectionParam.getRestEndpoint(),
                baseConnectionParam.getUsername(), PasswordUtils.encodePassword(baseConnectionParam.getPassword()));
    }

    @Override
    public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
        ZeppelinConnectionParam connectionParams = (ZeppelinConnectionParam) createConnectionParams(connectionJson);
        ZeppelinDataSourceParamDTO zeppelinDataSourceParamDTO = new ZeppelinDataSourceParamDTO();

        zeppelinDataSourceParamDTO.setUserName(connectionParams.getUsername());
        zeppelinDataSourceParamDTO.setPassword(connectionParams.getPassword());
        zeppelinDataSourceParamDTO.setRestEndpoint(connectionParams.getRestEndpoint());

View on GitHub (pinned to 02eac45a1b)

Solutions

  1. Set restEndpoint to the full Zeppelin URL, e.g. http://zeppelin-host:8080
  2. Provide the Zeppelin userName (and credentials if anonymous access is disabled)
  3. Re-save and use connection test to verify
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/datasource/zeppelin/param/ZeppelinDataSourceProcessor.java:52 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/00c432b66e05d549. Report an issue: GitHub.