apache/iceberg · warning

Committer found no partitions assigned across all members…

Error message

Committer {} found no partitions assigned across all members, cannot determine leader

What it means

When electing the committer leader, the code computes the first topic partition across all member assignments; if no member has any partition assigned, no leader can be determined and containsFirstPartition returns false. This means the consumer group has no partitions at all, so leader-dependent work (coordination) cannot proceed.

Solutions

  1. Verify the connector's topics/topics-regexp actually match existing Kafka topics with partitions.
  2. Wait for the rebalance to complete; this is transient during group reassignment and self-corrects on the next assignment.
  3. Check Kafka consumer group state (kafka-consumer-groups --describe) to confirm partition assignment for the connector group.
  4. If the topic was deleted/recreated, restart the connector tasks so they pick up the new partition layout.
Defensive patterns

Strategy: validation

Validate before calling

// before deploying, verify topics exist and have partitions
kafka-topics --bootstrap-server $BOOTSTRAP --describe --topic <connector-topic>
kafka-consumer-groups --bootstrap-server $BOOTSTRAP --describe --group <connect-group>

Prevention

When it happens

Trigger: containsFirstPartition invoked with an empty or partition-less members set — e.g. during startup before assignment, or after all partitions were revoked in a rebalance while the committer is still processing.

Common situations: Connector started with zero assigned partitions (source topic empty or topic deleted); rebalance in progress where every member lost its partitions; misconfigured topics regex matching no topics.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12). Data as JSON: /api/errors/3b3e6788cb08c856. Report an issue: GitHub.

Appendix: source

Thrown at kafka-connect/kafka-connect/src/main/java/org/apache/iceberg/connect/channel/CommitterImpl.java:100

    }

    Collection<MemberDescription> members = groupDesc.members();
    if (containsFirstPartition(members, currentAssignedPartitions)) {
      membersWhenWorkerIsCoordinator = members;
      return true;
    }

    return false;
  }

  @VisibleForTesting
  boolean containsFirstPartition(
      Collection<MemberDescription> members, Collection<TopicPartition> partitions) {
    // Determine the first partition across all members to elect the leader
    TopicPartition firstTopicPartition = findFirstTopicPartition(members);

    if (firstTopicPartition == null) {
      LOG.warn(
          "Committer {} found no partitions assigned across all members, cannot determine leader",
          taskId);
      return false;
    }

    boolean containsFirst = partitions.contains(firstTopicPartition);
    if (containsFirst) {
      LOG.info(
          "Committer {} contains the first partition {}, this task is the leader",
          taskId,
          firstTopicPartition);
    } else {
      LOG.debug(
          "Committer {} does not contain the first partition {}, not the leader",
          taskId,
          firstTopicPartition);
    }

View on GitHub (pinned to 86d9c8fc54)