{"record":{"id":"62beb8d1d2b6ce1a","repo":"apache/dolphinscheduler","slug":"resource-alibaba-cloud-google-storage-bucket-name","errorCode":null,"errorMessage":"resource.alibaba.cloud.google.storage.bucket.name is blank","messagePattern":"resource\\.alibaba\\.cloud\\.google\\.storage\\.bucket\\.name is blank","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-storage-plugin/dolphinscheduler-storage-gcs/src/main/java/org/apache/dolphinscheduler/plugin/storage/gcs/GcsStorageOperator.java","lineNumber":246,"sourceCode":"                    }\n                    foldersToFetch.add(temp.getFullName());\n                }\n            }\n            storageEntityList.addAll(tempList);\n        }\n        return storageEntityList;\n    }\n\n    @Override\n    public StorageEntity getStorageEntity(String resourceAbsolutePath) {\n        resourceAbsolutePath = transformAbsolutePathToGcsKey(resourceAbsolutePath);\n        Blob blob = gcsStorage.get(BlobId.of(bucketName, resourceAbsolutePath));\n        return transformBlobToStorageEntity(blob);\n    }\n\n    private void checkBucketNameExists(String bucketName) {\n        if (StringUtils.isBlank(bucketName)) {\n            throw new IllegalArgumentException(StorageConstants.GOOGLE_CLOUD_STORAGE_BUCKET_NAME + \" is blank\");\n        }\n\n        boolean exist = false;\n        for (Bucket bucket : gcsStorage.list().iterateAll()) {\n            if (bucketName.equals(bucket.getName())) {\n                exist = true;\n                break;\n            }\n        }\n\n        if (!exist) {\n            throw new IllegalArgumentException(\n                    \"bucketName: \" + bucketName + \" is not exists, you need to create them by yourself\");\n        } else {\n            log.info(\"bucketName: {} has been found\", bucketName);\n        }\n    }\n","sourceCodeStart":228,"sourceCodeEnd":264,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-storage-plugin/dolphinscheduler-storage-gcs/src/main/java/org/apache/dolphinscheduler/plugin/storage/gcs/GcsStorageOperator.java#L228-L264","documentation":"GcsStorageOperator.checkBucketNameExists validates the configured GCS bucket name at startup. If the resource config key resource.alibaba.cloud.google.storage.bucket.name is blank/empty it throws IllegalArgumentException immediately, since no storage operations can work without a bucket.","triggerScenarios":"Initializing GcsStorageOperator when StorageConstants.GOOGLE_CLOUD_STORAGE_BUCKET_NAME (resource.alibaba.cloud.google.storage.bucket.name) is missing or set to an empty/whitespace value in the storage configuration.","commonSituations":"Switching storage type to GCS without adding the bucket-name property; typos in the property name; config file not picked up so the default empty value is used.","solutions":["Set resource.alibaba.cloud.google.storage.bucket.name in the storage config (common.properties / application.yaml)","Verify the property key spelling matches StorageConstants.GOOGLE_CLOUD_STORAGE_BUCKET_NAME","Restart the service after editing configuration so the operator re-initializes"],"exampleFix":"// before (common.properties)\n# resource.alibaba.cloud.google.storage.bucket.name=\n// after\nresource.alibaba.cloud.google.storage.bucket.name=my-gcs-bucket","handlingStrategy":"validation","validationCode":"String bucket = config.get(\"resource.alibaba.cloud.google.storage.bucket.name\");\nif (bucket == null || bucket.isBlank()) throw new IllegalStateException(\"GCS bucket name must be configured\");","typeGuard":null,"tryCatchPattern":"try {\n    new GcsStorageOperator(...);\n} catch (IllegalArgumentException e) {\n    log.error(\"GCS storage misconfigured: {}\", e.getMessage());\n}","preventionTips":["Validate storage config at deployment time","Keep property keys in sync with StorageConstants constants","Re-verify config after switching storage.type to GCS"],"tags":["gcs","configuration","bucket"],"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-14T00:17:10.932Z"}