{"record":{"id":"946856c652a210d8","repo":"t8y2/dbx","slug":"bootstrap-servers-is-required","errorCode":null,"errorMessage":"bootstrap_servers is required","messagePattern":"bootstrap_servers is required","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"agents/drivers/kafka/src/main/java/com/dbx/agent/kafka/KafkaAgent.java","lineNumber":314,"sourceCode":"        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers(conn));\n        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,\n            \"org.apache.kafka.common.serialization.StringSerializer\");\n        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,\n            \"org.apache.kafka.common.serialization.ByteArraySerializer\");\n        props.put(ProducerConfig.ACKS_CONFIG, \"all\");\n        // Kafka 3.x enables idempotence by default, which rejects pre-0.11 brokers.\n        props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, \"false\");\n        applyConnectionProperties(conn, props);\n        return props;\n    }\n\n    private static String bootstrapServers(JsonObject conn) {\n        String servers = stringOrEmpty(conn, \"bootstrap_servers\");\n        if (servers.isBlank()) {\n            servers = stringOrEmpty(conn, \"bootstrapServers\");\n        }\n        if (servers.isBlank()) {\n            throw new IllegalArgumentException(\"bootstrap_servers is required\");\n        }\n        return servers;\n    }\n\n    static JsonObject resolveBrokerConnection(JsonObject conn) throws Exception {\n        String configured = stringOrEmpty(conn, \"bootstrap_servers\");\n        if (configured.isBlank()) configured = stringOrEmpty(conn, \"bootstrapServers\");\n        if (!configured.isBlank()) return conn;\n\n        String connectString = stringOrEmpty(conn, \"zookeeper_connect_string\");\n        if (connectString.isBlank()) connectString = stringOrEmpty(conn, \"zookeeperServers\");\n        if (connectString.isBlank()) {\n            throw new IllegalArgumentException(\"bootstrap_servers or zookeeper_connect_string is required\");\n        }\n\n        JsonObject resolved = conn.deepCopy();\n        resolved.addProperty(\"bootstrap_servers\", discoverBootstrapServers(connectString, securityProtocol(conn), conn));\n        return resolved;","sourceCodeStart":296,"sourceCodeEnd":332,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/kafka/src/main/java/com/dbx/agent/kafka/KafkaAgent.java#L296-L332","documentation":"Thrown by KafkaAgent.bootstrapServers when the connection object carries neither a 'bootstrap_servers' nor a 'bootstrapServers' key with a non-blank value. Every Kafka client built by this agent (admin client, producer, peek consumer) calls this helper, so all client construction fails until an initial broker address list is supplied.","triggerScenarios":"Thrown at agents/drivers/kafka/src/main/java/com/dbx/agent/kafka/KafkaAgent.java:314 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set bootstrap_servers in the connection configuration to a comma-separated host:port list of Kafka brokers, e.g. broker1:9092,broker2:9092","If using the camelCase alias bootstrapServers, ensure the value is non-empty after trimming"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}