pentaho/pentaho-kettle · error · InvocationTargetException
AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransformation.Exception
AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransformation.Exception
Error message
AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransformation.Exception
What it means
CheckTransProgressDialog runs transMeta.checkSteps(...) on a background thread with a progress monitor. Any exception thrown during step verification is wrapped in an InvocationTargetException whose message is AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransition.Exception-keyed text (the key reuses the AnalyseImpact package string, with e.toString() substituted).
Solutions
- Inspect the wrapped cause (e.toString() appears in the message) to identify the failing step.
- Open each step dialog and resolve validation errors shown in red.
- Confirm all database connections used by the transformation exist and connect.
- Update or remove the misbehaving step plugin.
Example fix
// before // TableInput step with no connection selected -> checkSteps throws // after // assign a DatabaseMeta to the step before verification: tableInput.setDatabaseMeta( dbMeta );
Defensive patterns
Strategy: validation
Validate before calling
// fill all required step settings before verifying
for (StepMeta step : transMeta.getSteps()) {
if (!step.getStepMetaInterface().supportsErrorHandling()) { /* normal */ }
// open step dialogs and confirm required fields are non-empty
} Try / catch
try {
new CheckTransProgressDialog(shell, transMeta, remarks, onlySelected, space, repository, metaStore).open();
} catch (Exception e) {
log.error("Step verification failed: ", e);
} Prevention
- Complete all required fields in step dialogs before verifying.
- Test database connections before verification.
- Update third-party step plugins with broken verify implementations.
When it happens
Trigger: Clicking 'Verify' on a transformation where a step's checkSteps() implementation throws: missing required settings, unavailable database connection, or a buggy plugin step.
Common situations: Steps with unfilled required fields; database connections that fail to resolve during verification; custom step plugins with faulty verify implementations.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- AnalyseImpactProgressDialog.RuntimeError.UnableToAnalyzeImpact.Exception
- GetJobSQLProgressDialog.RuntimeError.UnableToGenerateSQL.Exception
- GetSQLProgressDialog.RuntimeError.UnableToGenerateSQL.Exception
- AccessInputMeta.Exception.ErrorSavingToRepository
- AccessInputMeta.Exception.FileDoesNotExist
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/9a68c2816bef099b.
Report an issue: GitHub.
Appendix: source
Thrown at ui/src/main/java/org/pentaho/di/ui/spoon/dialog/CheckTransProgressDialog.java:86
this.shell = shell;
this.transMeta = transMeta;
this.onlySelected = onlySelected;
this.remarks = remarks;
this.space = space;
this.repository = repository;
this.metaStore = metaStore;
}
public void open() {
final ProgressMonitorDialog pmd = new ProgressMonitorDialog( shell );
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException {
try {
transMeta.checkSteps(
remarks, onlySelected, new ProgressMonitorAdapter( monitor ), space, repository, metaStore );
} catch ( Exception e ) {
throw new InvocationTargetException( e, BaseMessages.getString(
PKG, "AnalyseImpactProgressDialog.RuntimeError.ErrorCheckingTransformation.Exception", e.toString() ) );
}
}
};
try {
// Run something in the background to cancel active database queries, force this if needed!
Runnable run = new Runnable() {
public void run() {
IProgressMonitor monitor = pmd.getProgressMonitor();
while ( pmd.getShell() == null || ( !pmd.getShell().isDisposed() && !monitor.isCanceled() ) ) {
try {
Thread.sleep( 250 );
} catch ( InterruptedException e ) {
// Ignore sleep interruption exception
}
}
View on GitHub (pinned to f3058517a1)