apache/dolphinscheduler · error · IllegalArgumentException
containerName: <containerName> is not exists, you need to cr
Error message
containerName: <containerName> is not exists, you need to create them by yourself
What it means
AbsRemoteLogHandler.buildBlobContainerClient() wraps any failure to obtain the Azure Blob container client in an IllegalArgumentException stating the container does not exist. The Azure SDK's getBlobContainerClient is lazy, so this catch is a coarse signal that the container could not be resolved/created — typically it truly does not exist in the storage account (or credentials/endpoint are wrong).
Source
Thrown at dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/remote/AbsRemoteLogHandler.java:79
return instance;
}
protected BlobContainerClient buildBlobContainerClient() {
BlobServiceClient serviceClient = new BlobServiceClientBuilder()
.endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
.credential(new StorageSharedKeyCredential(accountName, accountKey))
.buildClient();
if (StringUtils.isBlank(containerName)) {
throw new IllegalArgumentException("remote.logging.abs.container.name is blank");
}
try {
this.blobContainerClient = serviceClient.getBlobContainerClient(containerName);
} catch (Exception ex) {
throw new IllegalArgumentException(
"containerName: " + containerName + " is not exists, you need to create them by yourself");
}
log.info("containerName: {} has been found.", containerName);
return blobContainerClient;
}
@Override
public void close() throws IOException {
// no need to close blobContainerClient
}
@Override
public void sendRemoteLog(String logPath) {
String objectName = RemoteLogUtils.getObjectNameFromLogPath(logPath);
try {View on GitHub (pinned to 02eac45a1b)
Solutions
- Create the container manually (Azure Portal, az storage container create --name <name> --account-name <account>) as the message instructs.
- Double-check remote.logging.abs.container.name spelling and that it matches the container in the account configured by remote.logging.abs.account.name/key.
- Verify storage account credentials; a wrong account key can surface as this not-exists error.
Example fix
// before remote.logging.abs.container.name=dolpscheduler-logs // typo, container missing // after az storage container create --name dolphinscheduler-logs \ --account-name <account> --account-key <key> remote.logging.abs.container.name=dolphinscheduler-logs
Defensive patterns
Strategy: validation
Validate before calling
BlobServiceClient sc = new BlobServiceClientBuilder()
.endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
.credential(new StorageSharedKeyCredential(accountName, accountKey))
.buildClient();
if (!sc.getBlobContainerClient(containerName).exists()) {
throw new IllegalStateException("Container " + containerName + " missing; create it before enabling ABS remote logging");
} Try / catch
try {
initRemoteLogHandler();
} catch (IllegalArgumentException e) {
log.error("ABS remote logging failed: {} — verify container exists and credentials are correct", e.getMessage());
} Prevention
- Pre-create the blob container with az CLI/Terraform before enabling remote logging.
- Verify account name/key by listing containers first; rule out credential issues.
- Match container names exactly (case-sensitive) between config and Azure.
When it happens
Trigger: Remote logging to ABS enabled with a container name that does not exist in the configured storage account (or wrong account/key so the container check fails) when the handler initializes buildBlobContainerClient().
Common situations: Typo in remote.logging.abs.container.name; container created in a different storage account/region than the configured one; account key wrong so access fails and is reported as not-exists.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- remote.logging.abs.container.name is blank
- bucketName: <bucketName> does not exists, you should create
- K8S_NAMESPACE_NOT_EXIST
- SCHEDULE_CRON_NOT_EXISTS
- 10203
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/2a61015a203fd591.
Report an issue: GitHub.