Kafka Error UNSTABLE_OFFSET_COMMIT
Error code 88 · Retriable Consumer
There are unstable offsets that need to be cleared.
Common Causes
- A transactional producer has written to the topic but not yet committed or aborted the transaction, leaving offsets in an unstable state that consumers in read_committed isolation cannot advance past
- A long-running or stalled transaction is blocking the last stable offset (LSO) from advancing, causing consumers to appear stuck
- Consumer group coordinator is waiting for a pending transactional offset commit from a producer using sendOffsetsToTransaction before it can finalize the group offset
Solutions
- Identify and resolve the stalled transaction — check for producers that crashed mid-transaction; they will be expired after transaction.timeout.ms (default 60s) and the transaction will be aborted automatically
- Reduce transaction.timeout.ms on transactional producers to limit how long a stalled transaction can block consumers
- Monitor broker and application logs for long-running open transactions; if one producer repeatedly times out or crashes mid-transaction, fix or restart that producer so the coordinator can abort it and advance the last stable offset
Diagnostic Commands
# Check consumer group lag and offsets
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group <group-id> | grep -E 'LAG|OFFSET'
# Check transaction-state topic health
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic __transaction_state | grep -E 'Leader|Isr|Replicas'Related APIs
This error can be returned by: OffsetFetch
Debugging Kafka errors? Conduktor Console gives you real-time visibility into your cluster. Explore all errors in the Error Decoder.