apache/pulsar · error · TransactionBufferException.TransactionNotFoundException
Transaction `
Error message
Transaction `
What it means
getTxnBufferOrThrowNotFoundException prefix guard: the transaction ID does not map to an open transaction buffer in the in-memory transaction buffer — the transaction is unknown, already committed/aborted, or malformed.
Source
Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java:245
}
}
@Override
public CompletableFuture<TransactionMeta> getTransactionMeta(TxnID txnID) {
CompletableFuture<TransactionMeta> getFuture = new CompletableFuture<>();
try {
getFuture.complete(getTxnBufferOrThrowNotFoundException(txnID));
} catch (TransactionBufferException.TransactionNotFoundException e) {
getFuture.completeExceptionally(e);
}
return getFuture;
}
private TxnBuffer getTxnBufferOrThrowNotFoundException(TxnID txnID)
throws TransactionBufferException.TransactionNotFoundException {
TxnBuffer buffer = buffers.get(txnID);
if (null == buffer) {
throw new TransactionBufferException.TransactionNotFoundException(
"Transaction `" + txnID + "` doesn't exist in the transaction buffer");
}
return buffer;
}
private TxnBuffer getTxnBufferOrCreateIfNotExist(TxnID txnID) {
TxnBuffer buffer = buffers.get(txnID);
if (null == buffer) {
TxnBuffer newBuffer = new TxnBuffer(txnID);
TxnBuffer oldBuffer = buffers.putIfAbsent(txnID, newBuffer);
if (null != oldBuffer) {
newBuffer.close();
return oldBuffer;
} else {
return newBuffer;
}
} else {
return buffer;View on GitHub (pinned to 820761864e)
Solutions
- Use a valid, active TxnID returned by newTransaction
- Check the transaction timeout settings; the txn may have been aborted
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java:245 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/pulsar@820761864e (2026-09-06).
Data as JSON: /api/errors/d01afca21ce97c81.
Report an issue: GitHub.