{"record":{"id":"cee07d431e91e02b","repo":"apache/dolphinscheduler","slug":"resource-alibaba-cloud-oss-bucket-name-is-empty","errorCode":null,"errorMessage":"resource.alibaba.cloud.oss.bucket.name is empty","messagePattern":"resource\\.alibaba\\.cloud\\.oss\\.bucket\\.name is empty","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"critical","filePath":"dolphinscheduler-storage-plugin/dolphinscheduler-storage-oss/src/main/java/org/apache/dolphinscheduler/plugin/storage/oss/OssStorageOperator.java","lineNumber":291,"sourceCode":"                    foldersToFetch.add(temp.getFullName());\n                }\n            }\n            storageEntityList.addAll(tempList);\n        }\n\n        return storageEntityList;\n    }\n\n    @Override\n    public StorageEntity getStorageEntity(String resourceAbsolutePath) {\n        resourceAbsolutePath = transformAbsolutePathToOssKey(resourceAbsolutePath);\n        OSSObject object = ossClient.getObject(new GetObjectRequest(bucketName, resourceAbsolutePath));\n        return transformOSSObjectToStorageEntity(object);\n    }\n\n    private void ensureBucketSuccessfullyCreated(String bucketName) {\n        if (StringUtils.isBlank(bucketName)) {\n            throw new IllegalArgumentException(\"resource.alibaba.cloud.oss.bucket.name is empty\");\n        }\n\n        boolean existsBucket = ossClient.doesBucketExist(bucketName);\n        if (!existsBucket) {\n            throw new IllegalArgumentException(\n                    \"bucketName: \" + bucketName + \" is not exists, you need to create them by yourself\");\n        }\n\n        log.info(\"bucketName: {} has been found, the current regionName is {}\", bucketName, region);\n    }\n    protected StorageEntity transformOSSObjectToStorageEntity(OSSObject ossObject) {\n        ResourceMetadata resourceMetaData = getResourceMetaData(ossObject.getKey());\n\n        StorageEntity storageEntity = new StorageEntity();\n        storageEntity.setFileName(new File(ossObject.getKey()).getName());\n        storageEntity.setFullName(ossObject.getKey());\n        storageEntity.setPfullName(resourceMetaData.getResourceParentAbsolutePath());\n        storageEntity.setType(resourceMetaData.getResourceType());","sourceCodeStart":273,"sourceCodeEnd":309,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-storage-plugin/dolphinscheduler-storage-oss/src/main/java/org/apache/dolphinscheduler/plugin/storage/oss/OssStorageOperator.java#L273-L309","documentation":"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.","triggerScenarios":"Initializing OssStorageOperator with resource.alibaba.cloud.oss.bucket.name missing or empty in the storage configuration.","commonSituations":"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.","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"],"exampleFix":"// before\nresource.alibaba.cloud.oss.bucket.name=\n// after\nresource.alibaba.cloud.oss.bucket.name=my-oss-bucket","handlingStrategy":"validation","validationCode":"String bucket = config.get(\"resource.alibaba.cloud.oss.bucket.name\");\nif (bucket == null || bucket.isBlank()) {\n    throw new IllegalStateException(\"resource.alibaba.cloud.oss.bucket.name must be configured\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    storageOperator = new OssStorageOperator(cfg);\n} catch (IllegalArgumentException e) {\n    log.error(\"OSS storage misconfigured: {}\", e.getMessage());\n    throw e;\n}","preventionTips":["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"],"tags":["config","oss","missing-config"],"backgroundTag":"missing-required-config-field","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"}