apache/dolphinscheduler · critical · IllegalArgumentException
resource.alibaba.cloud.oss.bucket.name is empty
Error message
resource.alibaba.cloud.oss.bucket.name is empty
What it means
OssStorageOperator.ensureBucketSuccessfullyCreated throws IllegalArgumentException when the configured OSS bucket name is blank. It runs during operator init, so the storage plugin fails to start before any OSS call.
Source
Thrown at dolphinscheduler-storage-plugin/dolphinscheduler-storage-oss/src/main/java/org/apache/dolphinscheduler/plugin/storage/oss/OssStorageOperator.java:291
foldersToFetch.add(temp.getFullName());
}
}
storageEntityList.addAll(tempList);
}
return storageEntityList;
}
@Override
public StorageEntity getStorageEntity(String resourceAbsolutePath) {
resourceAbsolutePath = transformAbsolutePathToOssKey(resourceAbsolutePath);
OSSObject object = ossClient.getObject(new GetObjectRequest(bucketName, resourceAbsolutePath));
return transformOSSObjectToStorageEntity(object);
}
private void ensureBucketSuccessfullyCreated(String bucketName) {
if (StringUtils.isBlank(bucketName)) {
throw new IllegalArgumentException("resource.alibaba.cloud.oss.bucket.name is empty");
}
boolean existsBucket = ossClient.doesBucketExist(bucketName);
if (!existsBucket) {
throw new IllegalArgumentException(
"bucketName: " + bucketName + " is not exists, you need to create them by yourself");
}
log.info("bucketName: {} has been found, the current regionName is {}", bucketName, region);
}
protected StorageEntity transformOSSObjectToStorageEntity(OSSObject ossObject) {
ResourceMetadata resourceMetaData = getResourceMetaData(ossObject.getKey());
StorageEntity storageEntity = new StorageEntity();
storageEntity.setFileName(new File(ossObject.getKey()).getName());
storageEntity.setFullName(ossObject.getKey());
storageEntity.setPfullName(resourceMetaData.getResourceParentAbsolutePath());
storageEntity.setType(resourceMetaData.getResourceType());View on GitHub (pinned to 02eac45a1b)
Solutions
- Set resource.alibaba.cloud.oss.bucket.name to a non-blank bucket name
- Verify the storage plugin configuration file is being loaded at startup
- Check that env-based substitution resolves before the operator is constructed
Example fix
// before resource.alibaba.cloud.oss.bucket.name= // after resource.alibaba.cloud.oss.bucket.name=my-oss-bucket
Defensive patterns
Strategy: validation
Validate before calling
String bucket = config.get("resource.alibaba.cloud.oss.bucket.name");
if (bucket == null || bucket.isBlank()) {
throw new IllegalStateException("resource.alibaba.cloud.oss.bucket.name must be configured");
} Try / catch
try {
storageOperator = new OssStorageOperator(cfg);
} catch (IllegalArgumentException e) {
log.error("OSS storage misconfigured: {}", e.getMessage());
throw e;
} Prevention
- Validate required OSS config keys in deployment scripts
- Document the exact property names for the OSS plugin
- Fail fast with a config check before starting master/worker nodes
When it happens
Trigger: Initializing OssStorageOperator with resource.alibaba.cloud.oss.bucket.name missing or empty in the storage configuration.
Common situations: Forgot to fill in the bucket name after copying a config template; wrong property key spelled in common.properties; env var not set on the server where DolphinScheduler runs.
Understand the failure class
Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.
Related errors
- resource.alibaba.cloud.obs.bucket.name is empty
- bucketName: ${bucketName} is not exists, you need to create
- fail to get k8s ApiClient:%s
- ENVIRONMENT_CONFIG_IS_NULL
- remote.logging.oss.bucket.name is empty
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/cee07d431e91e02b.
Report an issue: GitHub.