# org.apache.kafka.common.errors.ReplicaNotAvailableException: Replica for partition is not available

- **ID:** `kafka/replica-not-available`
- **Domain:** kafka
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

A follower replica for the requested partition is offline, not fully caught up, or the fetch request targets an unavailable replica.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 2.8.2 | active | — | — |
| 3.2.3 | active | — | — |
| 3.5.1 | active | — | — |

## Workarounds

1. **Check the broker logs for the specific partition and bring the offline replica online:
# Identify the partition leader
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic my_topic
# Restart the broker hosting the unavailable replica or reassign replicas:
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file reassign.json --execute** (90% success)
   ```
   Check the broker logs for the specific partition and bring the offline replica online:
# Identify the partition leader
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic my_topic
# Restart the broker hosting the unavailable replica or reassign replicas:
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file reassign.json --execute
   ```
2. **Set the consumer to read from the leader only by setting client-side rack awareness or using a fetch from the leader (default behavior if replica selector is not configured).** (80% success)
   ```
   Set the consumer to read from the leader only by setting client-side rack awareness or using a fetch from the leader (default behavior if replica selector is not configured).
   ```

## Dead Ends

- **** — Restarting the consumer only retries the fetch, but the replica remains unavailable. (95% fail)
- **** — Increasing fetch.max.wait.ms only delays the timeout, not the root cause. (85% fail)
