diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/rebalance/RebalanceManager.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/rebalance/RebalanceManager.java index 253070c7c7..1a722ff4de 100644 --- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/rebalance/RebalanceManager.java +++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/rebalance/RebalanceManager.java @@ -362,7 +362,11 @@ private ClusterModel buildClusterModel(CoordinatorContext coordinatorContext) { List assignment = coordinatorContext.getAssignment(tableBucket); Optional bucketLeaderAndIsrOpt = coordinatorContext.getBucketLeaderAndIsr(tableBucket); - checkArgument(bucketLeaderAndIsrOpt.isPresent(), "Bucket leader and isr is empty."); + // Skip the bucket if leader and ISR information is not available yet + // This can happen during table creation when leader election is not completed + if (!bucketLeaderAndIsrOpt.isPresent()) { + continue; + } LeaderAndIsr isr = bucketLeaderAndIsrOpt.get(); int leader = isr.leader(); // Skip the bucket if it is in a transient state (e.g., during table creation)