pentaho/pentaho-kettle · error · InvocationTargetException

UpgradeRepositoryDialog.Error.CreateUpdate

Error message

UpgradeRepositoryDialog.Error.CreateUpdate

What it means

In UpgradeRepositoryProgressDialog's run(), a KettleException while generating/creating the repository schema (upgrade SQL statements) is wrapped in an InvocationTargetException with 'UpgradeRepositoryDialog.Error.CreateUpdate' and the exception message. It means the repository upgrade DDL generation or execution failed.

Solutions

  1. Read the logged stack tracker and e.getMessage() in the dialog for the root database error
  2. Connect as a DB user with CREATE/ALTER privileges on the repository schema
  3. Back up the repository schema and re-run the upgrade after fixing the connection
  4. Manually inspect/apply generated statements to repair a partially upgraded schema
Defensive patterns

Strategy: try-catch

Validate before calling

// ensure DDL privileges before upgrade
try (Connection c = ds.getConnection()) { c.createStatement().execute("SELECT 1"); } // plus verify CREATE TABLE privilege with DBA

Try / catch

try { runUpgradeProgressDialog(...); } catch (InvocationTargetException ite) { Throwable root = ite; while (root.getCause() != null) root = root.getCause(); log.error("Upgrade failed: " + root.getMessage(), root); showError("Repository upgrade failed, see log"); }

Prevention

When it happens

Trigger: Running the repository upgrade wizard when rep.createRepositorySchema(...) throws — database connection failure during upgrade, insufficient DB privileges to create/alter tables, schema already partially upgraded, or unsupported database version.

Common situations: Upgrading an old Kettle repository against a database where the user lacks DDL rights; interrupted previous upgrade leaving inconsistent schema; DB driver/network failure mid-upgrade.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/3931857270b831c1. Report an issue: GitHub.

Appendix: source

Thrown at ui/src/main/java/org/pentaho/di/ui/repository/dialog/UpgradeRepositoryProgressDialog.java:98

        box.setMessage( BaseMessages.getString( PKG, "UpgradeRepositoryDialog.DryRunQuestion.Message" ) );
        box.setText( BaseMessages.getString( PKG, "UpgradeRepositoryDialog.DryRunQuestion.Title" ) );
        int answer = box.open();

        try {
          if ( answer == SWT.YES ) {
            // First do a dry-run
            //
            dryRun = true;
            rep.createRepositorySchema( new ProgressMonitorAdapter( monitor ), upgrade, generatedStatements, true );
          } else {
            rep
              .createRepositorySchema(
                new ProgressMonitorAdapter( monitor ), upgrade, generatedStatements, false );
          }

        } catch ( KettleException e ) {
          log.logError( toString(), Const.getStackTracker( e ) );
          throw new InvocationTargetException( e, BaseMessages.getString(
            PKG, "UpgradeRepositoryDialog.Error.CreateUpdate", e.getMessage() ) );
        }
      }
    };

    try {
      ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
      pmd.run( false, false, op );
    } catch ( InvocationTargetException e ) {
      log.logError( UpgradeRepositoryProgressDialog.class.toString(), "Error creating/updating repository: "
        + e.toString() );
      log.logError( toString(), Const.getStackTracker( e ) );
      showErrorDialog( e );

      retval = false;
    } catch ( InterruptedException e ) {
      log.logError( UpgradeRepositoryProgressDialog.class.toString(), "Error creating/updating repository: "
        + e.toString() );

View on GitHub (pinned to f3058517a1)