apache/pulsar · error · IllegalArgumentException
Bucket cannot be empty for Local offload
Error message
Bucket cannot be empty for Local offload
What it means
Tiered-storage config validation in JCloudBlobStoreProvider's TRANSIENT driver: the bucket (or container) setting required for transient S3-compatible offload is empty, so the blob-store target is undefined and validation aborts; the managedLedgerOffloadBucket configuration key is the faulty input.
Source
Thrown at tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java:216
return S3_BLOB_STORE_BUILDER.getBlobStore(config);
}
@Override
public void buildCredentials(TieredStorageConfiguration config) {
S3_CREDENTIAL_BUILDER.buildCredentials(config);
}
@Override
public void validate(TieredStorageConfiguration config) throws IllegalArgumentException {
S3_VALIDATION.validate(config);
}
},
TRANSIENT("transient", new AnonymousProviderMetadata(new TransientApiMetadata(), "")) {
@Override
public void validate(TieredStorageConfiguration config) throws IllegalArgumentException {
if (Strings.isNullOrEmpty(config.getBucket())) {
throw new IllegalArgumentException(
"Bucket cannot be empty for Local offload");
}
}
@Override
public BlobStore getBlobStore(TieredStorageConfiguration config) {
ContextBuilder contextBuilder = ContextBuilder.newBuilder("transient");
ShadedJCloudsUtils.addStandardModules(contextBuilder);
BlobStoreContext ctx = contextBuilder
.buildView(BlobStoreContext.class);
BlobStore bs = ctx.getBlobStore();
if (!bs.containerExists(config.getBucket())) {
Location loc = new LocationBuilder()
.scope(LocationScope.HOST)
.id(UUID.randomUUID() + "")View on GitHub (pinned to 820761864e)
Solutions
- Set managedLedgerOffloadBucket in the broker configuration
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/provider/JCloudBlobStoreProvider.java:216 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/41d88e529ef4af1c.
Report an issue: GitHub.