flowable/flowable-engine · error · TransactionException
Unable to retrieve transaction status
Error message
Unable to retrieve transaction status
What it means
Infrastructure failure in JtaTransactionInterceptor.isExisting: the JTA TransactionManager.getStatus() call threw a SystemException, so the interceptor cannot determine whether a transaction is active and wraps the failure in a TransactionException. Indicates a JTA/environment problem (transaction manager timeout, recovery issue), not bad input.
Solutions
- Verify the TransactionManager JNDI/bean configuration
- Look at the cause SystemException for server-side transaction failures
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/interceptor/JtaTransactionInterceptor.java:95 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/a0728a27857fe635.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/interceptor/JtaTransactionInterceptor.java:95
return result;
} finally {
doResume(oldTx);
}
}
private void doBegin() {
try {
transactionManager.begin();
} catch (NotSupportedException | SystemException e) {
throw new TransactionException("Unable to begin transaction", e);
}
}
private boolean isExisting() {
try {
return transactionManager.getStatus() != Status.STATUS_NO_TRANSACTION;
} catch (SystemException e) {
throw new TransactionException("Unable to retrieve transaction status", e);
}
}
private Transaction doSuspend() {
try {
return transactionManager.suspend();
} catch (SystemException e) {
throw new TransactionException("Unable to suspend transaction", e);
}
}
private void doResume(Transaction tx) {
if (tx != null) {
try {
transactionManager.resume(tx);
} catch (SystemException | InvalidTransactionException e) {
throw new TransactionException("Unable to resume transaction", e);
}View on GitHub (pinned to d6d39ce1c6)