[
https://issues.apache.org/jira/browse/KAFKA-20183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mickael Maison resolved KAFKA-20183.
------------------------------------
Fix Version/s: 4.3.0
Resolution: Fixed
> Share consumer group fails when group ID contains colon character
> -----------------------------------------------------------------
>
> Key: KAFKA-20183
> URL: https://issues.apache.org/jira/browse/KAFKA-20183
> Project: Kafka
> Issue Type: Bug
> Components: clients, group-coordinator
> Affects Versions: 4.1.0, 4.2.0, 4.1.1
> Reporter: Federico Valeri
> Assignee: Federico Valeri
> Priority: Major
> Fix For: 4.3.0
>
>
> The share partition key format is groupId:topicId:partition (per KIP-932).
> SharePartitionKey.validate() splits on : and expects exactly 3 tokens. When
> the group ID itself contains :, the split produces more than 3 tokens,
> causing validation to fail with IllegalArgumentException.
> This breaks the FindCoordinator RPC (CoordinatorType.SHARE) and the share
> consumer enters a silent failure loop it keeps polling but receives no data,
> with no error surfaced to the client.
> Share consumers with : in the group ID cannot consume data at all. The broker
> continuously fails on FindCoordinator requests.
> Reproducer:
> In a 3-broker cluster:
> {code}
> bin/kafka-console-share-consumer.sh --topic quickstart-events
> --bootstrap-server localhost:9092 --group "abc:dd"
> {code}
> Note: the bug triggers when the partition leader is on a different node from
> the share group coordinator, forcing a FindCoordinator RPC.
> Broker log:
> {code}
> [2026-02-13 09:09:44,781] ERROR Unable to find coordinator for
> InitializeStateHandler using key SharePartitionKey{groupId=abc:dd,
> topicIdPartition=7t5Mho2yQ1mt8kZnE80S9Q:null-0}: This most likely occurs
> because of a request being malformed by the client library or the message was
> sent to an incompatible broker. See the broker logs for more details..
> (org.apache.kafka.server.share.persister.PersisterStateManager$InitializeStateHandler)
> [2026-02-13 09:09:44,783] ERROR [GroupCoordinator id=1] Received error while
> calling initialize state for abc:dd on persister, errorCode: 42.
> (org.apache.kafka.coordinator.group.GroupCoordinatorService)
> [2026-02-13 09:09:49,781] ERROR Unable to find coordinator for
> InitializeStateHandler using key SharePartitionKey{groupId=abc:dd,
> topicIdPartition=7t5Mho2yQ1mt8kZnE80S9Q:null-0}: This most likely occurs
> because of a request being malformed by the client library or the message was
> sent to an incompatible broker. See the broker logs for more details..
> (org.apache.kafka.server.share.persister.PersisterStateManager$InitializeStateHandler)
> [2026-02-13 09:09:49,781] ERROR [GroupCoordinator id=1] Received error while
> calling initialize state for abc:dd on persister, errorCode: 42.
> (org.apache.kafka.coordinator.group.GroupCoordinatorService)
> [2026-02-13 09:09:54,784] ERROR [KafkaApi-1] Share coordinator key is invalid
> (kafka.server.KafkaApis)
> java.lang.IllegalArgumentException: Invalid key format: expected -
> groupId:topicId:partition, found - abc:dd:7t5Mho2yQ1mt8kZnE80S9Q:0
> at
> org.apache.kafka.server.share.SharePartitionKey.validate(SharePartitionKey.java:98)
> at kafka.server.KafkaApis.getCoordinator(KafkaApis.scala:1249)
> at
> kafka.server.KafkaApis.$anonfun$handleFindCoordinatorRequestV4AndAbove$1(KafkaApis.scala:1192)
> at
> scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:100)
> at
> scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:87)
> at
> scala.collection.convert.JavaCollectionWrappers$JListWrapper.map(JavaCollectionWrappers.scala:138)
> at
> kafka.server.KafkaApis.handleFindCoordinatorRequestV4AndAbove(KafkaApis.scala:1191)
> at
> kafka.server.KafkaApis.handleFindCoordinatorRequest(KafkaApis.scala:1184)
> at kafka.server.KafkaApis.handle(KafkaApis.scala:175)
> at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:163)
> at java.base/java.lang.Thread.run(Thread.java:1583)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)