Skip to content
Kafka Is Fun

HighReplication Degradation

ISR Shrink / Under-Replicated Partitions

Symptoms

  • UnderReplicatedPartitions is above 0
  • A partition's ISR lists fewer replicas than its replica list
  • The MaxLag replica-fetcher metric grows for the follower that is falling behind

Detection

kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions above 0. kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica, the maximum lag in messages between follower and leader replicas. kafka-topics.sh --describe --under-replicated-partitions.

Challenge mode: diagnose the root cause from the symptoms before reading the answer.

Root cause

A follower has not sent fetch requests, or has not caught up to the leader's log end offset, for replica.lag.time.max.ms (30 seconds by default), so the leader removes it from the ISR. Anything that keeps a follower from fetching or keeping up, for example a stalled broker, a slow disk or a congested network, can cause it. The partition keeps working but tolerates fewer failures.

Immediate actions

  1. Find the follower missing from the ISR: kafka-topics.sh --describe shows each partition's replicas and its ISR
  2. Look at that broker for what keeps it from fetching: its logs, disk, CPU and network
  3. Watch whether the ISR recovers by itself: a follower is added back once it has caught up

Permanent fix

Remove the cause. Once the follower catches up with the leader it rejoins the ISR on its own.

Prevention

Monitor UnderReplicatedPartitions and MaxLag, and keep brokers' disk and network capacity ahead of the load they carry.

Reproduce it in the simulator

In the simulator's Cluster tab, drag a broker's lag slider above 5 s (the simulator's stand-in for replica.lag.time.max.ms, which is 30 s by default in Kafka). Watch it leave the ISR. Drag it back to 0 and watch it rejoin.

Open the simulator to try it.

The interview angle

ISR shrink without a crash is easy to miss. If a partition's ISR has shrunk to min.insync.replicas, one more failure makes acks=all writes to it fail. Monitor UnderReplicatedPartitions continuously.

Sources

Checked against Kafka 4.2 documentation on 11 October 2026. Draft: not yet reviewed by a Kafka specialist, and releases move on, so confirm against the current documentation before you act on it.

Browse all troubleshooting entries