apache/dolphinscheduler · error · IllegalArgumentException
remote.logging.abs.container.name is blank
Error message
remote.logging.abs.container.name is blank
What it means
AbsRemoteLogHandler.buildBlobContainerClient() validates remote logging configuration for Azure Blob Storage (ABS). When the configured container name (remote.logging.abs.container.name) is blank/null it throws IllegalArgumentException because remote log storage cannot be set up without a target container.
Source
Thrown at dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/remote/AbsRemoteLogHandler.java:73
}
public static synchronized AbsRemoteLogHandler getInstance() {
if (instance == null) {
instance = new AbsRemoteLogHandler();
}
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
}View on GitHub (pinned to 02eac45a1b)
Solutions
- Set remote.logging.abs.container.name to an existing Azure Blob container name in the remote logging configuration.
- Verify the property key is correct and actually being loaded (check for typos and that the config file is on the classpath) so it is not read as blank.
- Create the container in the Azure storage account beforehand, since the handler expects it to exist (see the follow-up not-exists error).
Example fix
// before remote.logging.abs.container.name= // after remote.logging.abs.container.name=dolphinscheduler-remote-logs
Defensive patterns
Strategy: validation
Validate before calling
String container = config.getRemoteLoggingAbsContainerName();
if (StringUtils.isBlank(container)) {
throw new IllegalArgumentException("remote.logging.abs.container.name must be set when remote logging is enabled");
} Try / catch
try {
new AbsRemoteLogHandler(config);
} catch (IllegalArgumentException e) {
log.error("Azure remote logging misconfigured: {}", e.getMessage());
} Prevention
- Fill all remote.logging.abs.* properties whenever remote logging is enabled.
- Add config sanity checks (all abs fields non-blank) at startup in test environments.
- Keep container names consistent between environments via a config template checklist.
When it happens
Trigger: Enabling remote logging with abs as remote-log-storage-type but leaving remote.logging.abs.container.name empty (or whitespace) in the remote-logging configuration, when the handler is constructed.
Common situations: Copying a remote-logging config template and only filling account/key; typos or wrong config keys so the container name property never loads; container name omitted in dolphinscheduler remote log properties.
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
- containerName: <containerName> is not exists, you need to cr
- remote.logging.cos.bucket.name is empty
- receivers must not be null
- url can not be null
- headerParams is not a valid json
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/54fabe34f5c3cdd3.
Report an issue: GitHub.