diff --git a/pkg/kgo/producer.go b/pkg/kgo/producer.go index e5d382e7..7a47fb91 100644 --- a/pkg/kgo/producer.go +++ b/pkg/kgo/producer.go @@ -576,7 +576,7 @@ func (cl *Client) doInitProducerID(lastID int64, lastEpoch int16) (*producerID, } if err = kerr.ErrorForCode(resp.ErrorCode); err != nil { - if kerr.IsRetriable(err) { // TODO handle ConcurrentTransactions collision? + if kerr.IsRetriable(err) { // this could return ConcurrentTransactions, but this is rare; ignore until a user report cl.cfg.logger.Log(LogLevelInfo, "producer id initialization resulted in retriable error, discarding initialization attempt", "err", err) return &producerID{lastID, lastEpoch, err}, false } diff --git a/pkg/kgo/txn.go b/pkg/kgo/txn.go index 164dbe1a..77b9f2b2 100644 --- a/pkg/kgo/txn.go +++ b/pkg/kgo/txn.go @@ -608,7 +608,7 @@ func (cl *Client) maybeRecoverProducerID() (necessary, did bool, err error) { } kip360 := cl.producer.idVersion >= 3 && (errors.Is(ke, kerr.UnknownProducerID) || errors.Is(ke, kerr.InvalidProducerIDMapping)) - kip588 := cl.producer.idVersion >= 4 && errors.Is(ke, kerr.InvalidProducerEpoch /* TODO || err == kerr.TransactionTimedOut */) + kip588 := cl.producer.idVersion >= 4 && errors.Is(ke, kerr.InvalidProducerEpoch /* || err == kerr.TransactionTimedOut when implemented in Kafka */) recoverable := kip360 || kip588 if !recoverable {