Hi
I am trying to sync kafka data from source to a target kafka cluster using the kafka-connect hosted on target kafka cluster as bootstrap server and then using mirrormaker connectors on it, with below configuration. The source kafka is accessed via external ip. while the target is in the same k8s namespace. I am getting these errors in my mirrormaker log. Kafka version 3.9.1
2026-06-11 09:57:41 INFO NetworkClient:871 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Disconnecting from node 2 due to request timeout.
2026-06-11 09:57:41 INFO NetworkClient:364 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Cancelled in-flight FETCH request with correlation id 38 due to node 2 being disconnected (elapsed time since creation: 30115ms, elapsed time since send: 30005ms, throttle time: 0ms, request timeout: 30000ms)
2026-06-11 09:57:41 INFO FetchSessionHandler:618 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Error sending fetch request (sessionId=INVALID, epoch=INITIAL) to node 2:
org.apache.kafka.common.errors.DisconnectException
2026-06-11 09:57:41 INFO NetworkClient:871 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Disconnecting from node 0 due to request timeout.
2026-06-11 09:57:41 INFO NetworkClient:364 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Cancelled in-flight FETCH request with correlation id 37 due to node 0 being disconnected (elapsed time since creation: 30124ms, elapsed time since send: 30006ms, throttle time: 0ms, request timeout: 30000ms)
2026-06-11 09:57:41 INFO FetchSessionHandler:618 - [Consumer clientId=iad-5->phx-2|mirror-source-connector-0|replication-consumer, groupId=null] Error sending fetch request (sessionId=INVALID, epoch=INITIAL) to node 0:
org.apache.kafka.common.errors.DisconnectException
and these in other pod for same mirrormaker
2026-06-11 14:32:36 INFO NetworkClient:1021 - [AdminClient clientId=iad-5->phx-2|mirror-checkpoint-connector|checkpoint-source-admin] Node 1 disconnected.
2026-06-11 14:32:36 INFO NetworkClient:364 - [AdminClient clientId=iad-5->phx-2|mirror-checkpoint-connector|checkpoint-source-admin] Cancelled in-flight METADATA request with correlation id 4341 due to node 1 being disconnected (elapsed time since creation: 52ms, elapsed time since send: 52ms, throttle time: 0ms, request timeout: 30000ms)
2026-06-11 14:33:02 INFO Scheduler:99 - refreshing idle consumers group offsets at target cluster took 142 ms
2026-06-11 14:33:02 INFO Scheduler:99 - sync idle consumer group offset from source to target took 1 ms
This is my mirrormaker configguration:
apiVersion: v1
kind: ConfigMap
metadata:
name: mirrormaker2-config
data:
connect-distributed.properties: |
bootstrap.servers={{TARGET_KAFKA_HOST}}
group.id=connect-cluster
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
offset.storage.replication.factor=3
config.storage.topic=connect-configs
config.storage.replication.factor=3
status.storage.topic=connect-status
status.storage.replication.factor=3
offset.flush.interval.ms=60000
mirror-checkpoint-connector.json: |
{
“name”: “mirror-checkpoint-connector”,
“config”: {
“connector.class”: “org.apache.kafka.connect.mirror.MirrorCheckpointConnector”,
“source.cluster.alias”: “{{SOURCE_CLUSTER_ALIAS}}”,
“target.cluster.alias”: “{{TARGET_CLUSTER_ALIAS}}”,
“source.cluster.bootstrap.servers”: “{{SOURCE_KAFKA_HOST}}”,
“target.cluster.bootstrap.servers”: “{{TARGET_KAFKA_HOST}}”,
“tasks.max”: “1”,
“emit.checkpoints.enabled”: “true”,
“sync.group.offsets.enabled”: “true”,
“emit.checkpoints.interval.seconds”: “60”,
“sync.group.offsets.interval.seconds”: “60”,
“refresh.groups.enabled”: “true”,
“refresh.groups.interval.seconds”: “600”,
“replication.policy.class”: “org.apache.kafka.connect.mirror.IdentityReplicationPolicy”,
“key.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”,
“value.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”
}
}
mirror-heartbeat-connector.json: |
{
“name”: “mirror-heartbeat-connector”,
“config”: {
“connector.class”: “org.apache.kafka.connect.mirror.MirrorHeartbeatConnector”,
“source.cluster.alias”: “{{SOURCE_CLUSTER_ALIAS}}”,
“target.cluster.alias”: “{{TARGET_CLUSTER_ALIAS}}”,
“source.cluster.bootstrap.servers”: “{{SOURCE_KAFKA_HOST}}”,
“target.cluster.bootstrap.servers”: “{{TARGET_KAFKA_HOST}}”,
“tasks.max”: “1”,
“replication.policy.class”: “org.apache.kafka.connect.mirror.IdentityReplicationPolicy”,
“key.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”,
“value.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”,
“emit.heartbeats.enabled”: “true”,
“emit.heartbeats.interval.seconds”: “1”
}
}
mirror-source-connector.json: |
{
“name”: “mirror-source-connector”,
“config”: {
“connector.class”: “org.apache.kafka.connect.mirror.MirrorSourceConnector”,
“source.cluster.alias”: “{{SOURCE_CLUSTER_ALIAS}}”,
“target.cluster.alias”: “{{TARGET_CLUSTER_ALIAS}}”,
“source.cluster.bootstrap.servers”: “{{SOURCE_KAFKA_HOST}}”,
“target.cluster.bootstrap.servers”: “{{TARGET_KAFKA_HOST}}”,
“topics”: “.",
“topics.exclude”: "heartbeats|connect-.|.[-.]internal|.\.replica|__.*”,
“tasks.max”: “1”,
“auto.offset.reset”: “earliest”,
“replication.policy.class”: “org.apache.kafka.connect.mirror.IdentityReplicationPolicy”,
“key.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”,
“value.converter”: “org.apache.kafka.connect.converters.ByteArrayConverter”,
“sync.topic.configs.enabled”: “true”,
“sync.topic.acls.enabled”: “true”,
“refresh.topics.enabled”: “true”,
“refresh.topics.interval.seconds”: “600”,
“sync.topic.configs.interval.seconds”: “600”,
“sync.topic.acls.interval.seconds”: “600”,
“replication.factor”: “3”
}
}
log4j.properties: |
Root logger configuration: log to stdout
log4j.rootLogger=INFO, stdout
# Standard Output (stdout) appender: to capture logs in Kubernetes pod logs
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
What are the reasons, how to fix. This system was working earlier, recently i am observing this. Even restarting mirrormaker pod didn’t help.