apache/pulsar · error · ParameterException
The driver %s is not supported, (Possible values: %s).
Error message
The driver %s is not supported, (Possible values: %s).
What it means
Thrown by the 'set-offload-policies' namespace command when the specified offload driver is not among the supported driverNames (e.g. S3, aws-sdk, azureblob, google-cloud-storage depending on build). driverSupported(driver) checks the driver string against the registered driver list; an unsupported or misspelled name yields this ParameterException listing valid values. A related check also requires S3-family drivers to have a region or service endpoint.
Source
Thrown at pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java:2346
public final List<String> driverNames = OffloadPoliciesImpl.DRIVER_NAMES;
public boolean driverSupported(String driver) {
return driverNames.stream().anyMatch(d -> d.equalsIgnoreCase(driver));
}
public boolean isS3Driver(String driver) {
if (StringUtils.isEmpty(driver)) {
return false;
}
return driver.equalsIgnoreCase(driverNames.get(0)) || driver.equalsIgnoreCase(driverNames.get(1));
}
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(namespaceName);
if (!driverSupported(driver)) {
throw new ParameterException("The driver " + driver + " is not supported, "
+ "(Possible values: " + String.join(",", driverNames) + ").");
}
if (isS3Driver(driver) && Strings.isNullOrEmpty(region) && Strings.isNullOrEmpty(endpoint)) {
throw new ParameterException(
"Either s3ManagedLedgerOffloadRegion or s3ManagedLedgerOffloadServiceEndpoint must be set"
+ " if s3 offload enabled");
}
OffloadedReadPriority offloadedReadPriority = OffloadPoliciesImpl.DEFAULT_OFFLOADED_READ_PRIORITY;
if (this.offloadReadPriorityStr != null) {
try {
offloadedReadPriority = OffloadedReadPriority.fromString(this.offloadReadPriorityStr);
} catch (Exception e) {
throw new ParameterException("--offloadedReadPriority parameter must be one of "
+ Arrays.stream(OffloadedReadPriority.values())
.map(OffloadedReadPriority::toString)
.collect(Collectors.joining(","))View on GitHub (pinned to 820761864e)
Solutions
- Use one of the driver names printed in the error message exactly (e.g. aws-sdk, google-cloud-storage, azureblob, filesystem as applicable).
- Match the names shown by --help / the error output rather than docs for other Pulsar versions.
- If the needed driver is genuinely absent, install/copy the corresponding offloader nar into the broker's offloaders directory or use a distribution that bundles it.
- For S3-family drivers, also supply --region or --s3-endpoint to pass the follow-up validation.
Example fix
// before pulsar-admin namespaces set-offload-policies public/default --driver s3 --bucket my-bucket --region us-east-1 // after pulsar-admin namespaces set-offload-policies public/default --driver aws-sdk --bucket my-bucket --region us-east-1
Defensive patterns
Strategy: validation
Validate before calling
DRIVER="$1"
SUPPORTED="aws-sdk google-cloud-storage azureblob filesystem" # confirm with your error output/--help
[[ " $SUPPORTED " == *" $DRIVER "* ]] || { echo "unsupported driver: $DRIVER"; exit 1; } Prevention
- Copy driver names from the error's possible-values list or --help, not from older docs.
- Pin driver names per Pulsar version; they changed over releases (s3 -> aws-sdk).
- Ensure the matching offloader nar is installed on brokers before configuring the policy.
- For S3-family drivers always supply --region or an S3 endpoint.
When it happens
Trigger: Running set-offload-policies with --driver set to a name not in the supported list, e.g. 's3' when the build expects 'aws-sdk', 'filesystem' in a build without it, or a typo like 'GCS' vs 'google-cloud-storage'.
Common situations: Copy-pasting driver names from older Pulsar docs where names changed (s3 -> aws-sdk); running a distribution built without an optional offloader bundled; wrong case ('S3' vs lowercase name).
Related errors
- The driver ${driver} is not supported, (Possible values: ${d
- Either s3ManagedLedgerOffloadRegion or s3ManagedLedgerOffloa
- --offloadedReadPriority parameter must be one of ${validValu
- Timeout during delete operation
- Timeout during close operation
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/651259e7c78def8f.
Report an issue: GitHub.