conduktor.io ↗

Kafka ConsumerGroupDescribe Response Wire Format v0 — Binary Protocol Layout

What is ConsumerGroupDescribe?

Describes consumer groups using the new protocol (KIP-848) via kafka-consumer-groups.sh --describe. Returns per-member assignment details with the group epoch. A rapidly incrementing epoch means members are joining/leaving frequently, which is normal during scaling but abnormal in steady state.

Related Errors

COORDINATOR_NOT_AVAILABLE · GROUP_AUTHORIZATION_FAILED · GROUP_ID_NOT_FOUND · INVALID_GROUP_ID · TOPIC_AUTHORIZATION_FAILED · UNSUPPORTED_VERSION

Wire Diagram

Response Header · flexible
message_size int32 · 4B
correlation_id int32 · 4B
tagged var
ConsumerGroupDescribeResponse v0
ThrottleTimeMs int32 · 4B
Groups array
tagged var
ErrorCode int16 · 2B
ErrorMessage? string (compact)
GroupId string (compact)
GroupState string (compact)
GroupEpoch int32 · 4B
AssignmentEpoch int32 · 4B
AssignorName string (compact)
Members array
AuthorizedOperations int32 · 4B
tagged var
MemberId string (compact)
InstanceId? string (compact)
RackId? string (compact)
MemberEpoch int32 · 4B
ClientId string (compact)
ClientHost string (compact)
SubscribedTopicNames []string
SubscribedTopicRegex? string (compact)
Assignment struct
TargetAssignment struct
tagged var
TopicPartitions array
tagged var
TopicId uuid · 16B
TopicName string (compact)
Partitions []int32
tagged var
TopicPartitions array
tagged var
TopicId uuid · 16B
TopicName string (compact)
Partitions []int32
tagged var

Schema & Example

Schema
{
  "ThrottleTimeMs": int32,
  "Groups": [{
      "ErrorCode": int16,
      "ErrorMessage": string?,
      "GroupId": string,
      "GroupState": string,
      "GroupEpoch": int32,
      "AssignmentEpoch": int32,
      "AssignorName": string,
      "Members": [{
          "MemberId": string,
          "InstanceId": string?,
          "RackId": string?,
          "MemberEpoch": int32,
          "ClientId": string,
          "ClientHost": string,
          "SubscribedTopicNames": [string],
          "SubscribedTopicRegex": string?,
          "Assignment": {
            "TopicPartitions": [{
                "TopicId": uuid,
                "TopicName": string,
                "Partitions": [int32]
            }]
          },
          "TargetAssignment": {
            "TopicPartitions": [{
                "TopicId": uuid,
                "TopicName": string,
                "Partitions": [int32]
            }]
          }
      }],
      "AuthorizedOperations": int32
  }]
}
Example
{
  "ThrottleTimeMs": 0,
  "Groups": [{
      "ErrorCode": 0,
      "ErrorMessage": "NETWORK_EXCEPTION",
      "GroupId": "order-processors",
      "GroupState": "Stable",
      "GroupEpoch": 12,
      "AssignmentEpoch": 12,
      "AssignorName": "uniform",
      "Members": [{
          "MemberId": "consumer-1-abc123",
          "InstanceId": "abc-123",
          "RackId": null,
          "MemberEpoch": 12,
          "ClientId": "my-app-producer",
          "ClientHost": "192.168.1.100",
          "SubscribedTopicNames": ["value-1", "value-2"],
          "SubscribedTopicRegex": "orders-.*",
          "Assignment": {
            "TopicPartitions": [{
                "TopicId": "550e8400-e29b-41d4-a716-446655440000",
                "TopicName": "orders",
                "Partitions": [1, 2, 3]
            }]
          },
          "TargetAssignment": {
            "TopicPartitions": [{
                "TopicId": "550e8400-e29b-41d4-a716-446655440000",
                "TopicName": "orders",
                "Partitions": [1, 2, 3]
            }]
          }
      }],
      "AuthorizedOperations": 2
  }]
}