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

  1. Inspect the cause (KettleException dbe) for the underlying database error and fix that first
  2. Verify the repository database connection is alive and reachable (network, firewall, DB uptime)
  3. Retry the repository operation after reconnecting; uncommitted changes are lost
  4. 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

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


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)