Hi all, As reported in KAFKA-17094 [1], to scale down KRaft-based broker nodes, they must first be unregistered via the Kafka Admin API. If a node is removed before being unregistered, it can't be listed for unregistration because the describeQuorum won't show inactive observer nodes. This happens because the quorum state excludes nodes that haven't heartbeated within the observer session timeout [2].
To address this issue, we could stop clearing the observers list, changing its meaning from "active observer nodes" to "all registered observer nodes". While the current code implies the list should only include active nodes, there's no documentation explicitly stating this. Moreover, the voters list already includes all registered/configured voter nodes, inactive or not. Making this change would align the behavior of the observers and voters lists. Alternatively, we could add another field in the response (requiring a KIP) to include registered observer nodes that are offline. This would result in two separate lists: one for active observer nodes and one for inactive observer nodes. What are your thoughts on this issue? [1] https://issues.apache.org/jira/browse/KAFKA-17094 [2] https://github.com/apache/kafka/blob/trunk/raft/src/main/java/org/apache/kafka/raft/LeaderState.java#L469 Thanks! Regards, Gantigmaa Selenge