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

  1. Use one of the driver names printed in the error message exactly (e.g. aws-sdk, google-cloud-storage, azureblob, filesystem as applicable).
  2. Match the names shown by --help / the error output rather than docs for other Pulsar versions.
  3. 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.
  4. 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

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


AI-assisted analysis of apache/pulsar@820761864e (2026-09-06). Data as JSON: /api/errors/651259e7c78def8f. Report an issue: GitHub.