[ 
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)

Reply via email to