apache/druid · error · ISE

Invalid value[ ] for property[ ]. Only [ ] is supported…

Error message

Invalid value[%s] for property[%s]. Only [%s] is supported; the ZooKeeper-based 'batch' server view has been removed. Remove this property or set it to '%s'. See the Druid upgrade notes for details.

What it means

Druid's startup injector validates the runtime properties before building the injector. The ZooKeeper-based 'batch' server view type has been removed; only 'http' is supported, so any other druid.serverview.type value causes an immediate ISE at startup.

Solutions

  1. Remove the druid.serverview.type property entirely (http is the default).
  2. Set druid.serverview.type=http explicitly.
  3. Review the Druid upgrade notes for the removed ZK-based server view and migrate any dependent configs.

Example fix

// before (runtime.properties)
druid.serverview.type=batch
// after (runtime.properties)
druid.serverview.type=http
Defensive patterns

Strategy: validation

Validate before calling

String v = props.getProperty("druid.serverview.type");
if (v != null && !"http".equals(v)) { throw new IllegalStateException("druid.serverview.type must be 'http' or unset: " + v); }

Try / catch

try { injector = new StartupInjectorBuilder().build(); } catch (ISE e) { if (e.getMessage().contains("druid.serverview.type")) { log.error("Fix druid.serverview.type in runtime.properties"); } throw e; }

Prevention

When it happens

Trigger: Setting druid.serverview.type to 'batch' (or any value other than 'http') in runtime.properties, typically left over from an older Druid cluster configuration.

Common situations: Upgrading a legacy Druid cluster that used the ZK-based batch server view; copy-pasting old historical/broker configs into a newer Druid release.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/92ba71ee2aeec1e7. Report an issue: GitHub.

Appendix: source

Thrown at processing/src/main/java/org/apache/druid/guice/StartupInjectorBuilder.java:187

            docsLink
        );
      }

      validateRemovedProcessingConfigs();
      validateServerViewType();
      validateIndexerRunnerType();
    }

    /**
     * Rejects any value of {@code druid.serverview.type} other than {@code "http"}. The
     * ZooKeeper-based "batch" server view has been removed; only the HTTP-based server view is
     * supported.
     */
    private void validateServerViewType()
    {
      String configuredType = properties.getProperty(SERVERVIEW_TYPE_CONFIG_STRING);
      if (configuredType != null && !SERVERVIEW_TYPE_HTTP.equals(configuredType)) {
        throw new ISE(
            "Invalid value[%s] for property[%s]. Only [%s] is supported; the ZooKeeper-based"
            + " 'batch' server view has been removed. Remove this property or set it to '%s'."
            + " See the Druid upgrade notes for details.",
            configuredType,
            SERVERVIEW_TYPE_CONFIG_STRING,
            SERVERVIEW_TYPE_HTTP,
            SERVERVIEW_TYPE_HTTP
        );
      }
    }

    /**
     * Rejects {@code druid.indexer.runner.type=remote}. The ZooKeeper-based {@code RemoteTaskRunner}
     * has been removed; use the HTTP-based {@code httpRemote} runner (the default) or {@code local}
     * for single-process testing.
     */
    private void validateIndexerRunnerType()
    {

View on GitHub (pinned to 9b90983fd2)