pentaho/pentaho-kettle · error · KettleException
Unable to commit repository connection
Error message
Unable to commit repository connection
What it means
Wraps any KettleException raised while committing the repository database connection during commit(). A failed commit leaves repository writes uncommitted, and the delegate also clears Counters on the success path, so this error signals the repository session could not be finalized. Always caused by an underlying database exception (dbe) attached as the cause.
Solutions
- Inspect the cause (KettleException dbe) for the underlying database error and fix that first
- Verify the repository database connection is alive and reachable (network, firewall, DB uptime)
- Retry the repository operation after reconnecting; uncommitted changes are lost
- Check database logs for deadlock/rollback reasons and adjust transaction handling or load
Example fix
// before
try {
repository.disconnect();
} catch (KettleException e) {
// only top message: 'Unable to commit repository connection'
log.error(e.getMessage());
}
// after
try {
repository.disconnect();
} catch (KettleException e) {
log.error("Repository commit failed", e); // inspect cause for DB-level error
// reconnect and retry if appropriate
} Defensive patterns
Strategy: try-catch
Validate before calling
// verify connectivity before a long repository session
if (!database.checkConnectionOpen()) { reconnect(); } Try / catch
try {
repository.disconnect();
} catch (KettleException e) {
Throwable cause = e.getCause();
log.error("Repository commit failed: " + (cause != null ? cause.getMessage() : e.getMessage()), e);
// decide reconnect/retry
} Prevention
- Keep repository sessions short; commit frequently
- Monitor repository DB uptime and network stability
- Avoid concurrent long transactions on the same repository rows
When it happens
Trigger: KettleDatabaseRepositoryConnectionDelegate.commit() fails, e.g. database.commit() throws due to connection loss, deadlock, or an earlier statement error, typically invoked through disconnect() at session close.
Common situations: Network drop or database restart mid-session; transaction aborted by a constraint violation in an earlier operation; DBA killing a long-lived repository session; connection pool timeout.
Related errors
- Error comitting connection
- Trans.Exception.ErrorCommittingUniqueConnection
- Unable to commit connection after having inserted rows.
- AbortMeta.Exception.UnableToSaveStepInfoToRepository
- AccessInputMeta.Exception.ErrorReadingRepository
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/25f3457ccac79396.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryConnectionDelegate.java:287
database.setCommit( 0 );
}
}
public synchronized void commit() throws KettleException {
try {
closeJobAttributeInsertPreparedStatement();
closeStepAttributeInsertPreparedStatement();
closeTransAttributeInsertPreparedStatement();
if ( !database.isAutoCommit() ) {
database.commit();
}
// Also, clear the counters, reducing the risk of collisions!
//
Counters.getInstance().clear();
} catch ( KettleException dbe ) {
throw new KettleException( "Unable to commit repository connection", dbe );
}
}
public synchronized void rollback() {
try {
database.rollback();
// Also, clear the counters, reducing the risk of collisions!
//
Counters.getInstance().clear();
} catch ( KettleException dbe ) {
log.logError( "Error rolling back repository." );
}
}
/**
* @return the database
*/View on GitHub (pinned to f3058517a1)