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
- Find the follower missing from the ISR: kafka-topics.sh --describe shows each partition's replicas and its ISR
- Look at that broker for what keeps it from fetching: its logs, disk, CPU and network
- 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
- Broker configs (4.2 documentation) (opens in a new tab)
- Monitoring (4.2 documentation) (opens in a new tab)
- Design (4.2 documentation) (opens in a new tab)
- Basic Kafka operations (4.2 documentation) (opens in a new tab)
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.
Seeing this in your logs?
- NOT_ENOUGH_REPLICAS (NotEnoughReplicasException)Find out which replicas dropped out of the ISR and bring them back. Do not lower min.insync.replicas just to make the error go away, unless you accept that an acknowledged write may be on fewer replicas than you intended.
- Under-replicated partitions greater than zeroLook at which broker the missing replicas live on. If it is down, bring it back. If it is up, a follower is not keeping up, and the fix is whatever slows it. Also check whether one of its log directories has failed.