diff --git a/clients/src/main/java/kafka/clients/producer/internals/Sender.java b/clients/src/main/java/kafka/clients/producer/internals/Sender.java index 5991ce6..a5cc74f 100644 --- a/clients/src/main/java/kafka/clients/producer/internals/Sender.java +++ b/clients/src/main/java/kafka/clients/producer/internals/Sender.java @@ -283,7 +283,11 @@ public class Sender implements Runnable { private void handleMetadataResponse(Struct body, long now) { this.metadataFetchInProgress = false; - this.metadata.update(ProtoUtils.parseMetadataResponse(body), now); + Cluster cluster = ProtoUtils.parseMetadataResponse(body); + // the server can give back an empty metadata response (!) if the topic doesn't exist and that is our only + // topic, don't use that + if (cluster.nodes().size() > 0) + this.metadata.update(cluster, now); } /**