Kafka Error TRANSACTIONAL_ID_NOT_FOUND
Error code 105 · Non-retriable Transactions
The transactionalId could not be found.
Common Causes
- A transactional producer's transaction log entry expired and was deleted because the producer was idle longer than transactional.id.expiration.ms (default 7 days)
- EndTransaction or AddOffsetsToTxn request was sent for a transactional.id that never completed InitProducerId on this cluster
- Producer restarted with a new transactional.id that doesn't match what the broker has in its transaction log
Solutions
- Call initTransactions() again to re-register the transactional ID and get a new producer epoch — the previous transaction state has been expired and cleaned up
- Increase transactional.id.expiration.ms if producers are legitimately idle for extended periods (batch jobs, infrequent producers)
- Ensure producers call initTransactions() before any transactional operation, especially after a restart or long idle period
Diagnostic Commands
# Look for transaction state for the ID in broker logs
grep '<txn-id>\|TRANSACTIONAL_ID_NOT_FOUND\|transactional.id.expiration' /var/log/kafka/server.log | tail -30
# Check broker transaction configuration
kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-default --describe | grep transactional.id.expirationRelated APIs
This error can be returned by: AddOffsetsToTxn · AddPartitionsToTxn · EndTxn · InitProducerId
Debugging Kafka errors? Conduktor Console gives you real-time visibility into your cluster. Explore all errors in the Error Decoder.