t8y2/dbx · error · IllegalArgumentException

bootstrap_servers or zookeeper_connect_string is required

Error message

bootstrap_servers or zookeeper_connect_string is required

What it means

Thrown by resolveBrokerConnection when the connection JSON has neither bootstrap_servers/bootstrapServers nor a zookeeper_connect_string. The agent needs at least one of these to know where to reach the cluster: direct broker endpoints, or a ZooKeeper ensemble it can query for broker discovery.

Source

Thrown at agents/drivers/kafka/src/main/java/com/dbx/agent/kafka/KafkaAgent.java:327

        String servers = stringOrEmpty(conn, "bootstrap_servers");
        if (servers.isBlank()) {
            servers = stringOrEmpty(conn, "bootstrapServers");
        }
        if (servers.isBlank()) {
            throw new IllegalArgumentException("bootstrap_servers is required");
        }
        return servers;
    }

    static JsonObject resolveBrokerConnection(JsonObject conn) throws Exception {
        String configured = stringOrEmpty(conn, "bootstrap_servers");
        if (configured.isBlank()) configured = stringOrEmpty(conn, "bootstrapServers");
        if (!configured.isBlank()) return conn;

        String connectString = stringOrEmpty(conn, "zookeeper_connect_string");
        if (connectString.isBlank()) connectString = stringOrEmpty(conn, "zookeeperServers");
        if (connectString.isBlank()) {
            throw new IllegalArgumentException("bootstrap_servers or zookeeper_connect_string is required");
        }

        JsonObject resolved = conn.deepCopy();
        resolved.addProperty("bootstrap_servers", discoverBootstrapServers(connectString, securityProtocol(conn), conn));
        return resolved;
    }

    private static String discoverBootstrapServers(String connectString, String securityProtocol, JsonObject conn)
        throws Exception {
        int sessionTimeout = intOrDefault(conn, "zookeeper_session_timeout_ms", DEFAULT_SESSION_TIMEOUT_MS);
        int connectionTimeout = intOrDefault(
            conn,
            "zookeeper_connection_timeout_ms",
            DEFAULT_ZOOKEEPER_CONNECTION_TIMEOUT_MS
        );
        CountDownLatch connected = new CountDownLatch(1);
        ZooKeeper zooKeeper = new ZooKeeper(connectString, sessionTimeout, event -> {
            if (event.getState() == Watcher.Event.KeeperState.SyncConnected) connected.countDown();

View on GitHub (pinned to c0390bff16)

Solutions

  1. Provide bootstrap_servers with one or more Kafka broker host:port entries
  2. Alternatively provide zookeeper_connect_string so the agent discovers brokers via ZooKeeper
  3. Check for typos in the key names; both snake_case and camelCase aliases are accepted
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at agents/drivers/kafka/src/main/java/com/dbx/agent/kafka/KafkaAgent.java:327 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/3a050e0f86588edd. Report an issue: GitHub.