pentaho/pentaho-kettle · error · KettleException
SingleThreaderDialog.Exception.UnableToFindRepositoryDirecto…
Error message
SingleThreaderDialog.Exception.UnableToFindRepositoryDirectory)
What it means
SingleThreaderDialog.loadTransformation resolves the directory part of the sub-transformation path with repository.findDirectory(realDirectory). A null result (no such directory in the repository) triggers this KettleException keyed to SingleThreaderDialog.Exception.UnableToFindRepositoryDirectory) — note the stray closing paren in the message key, which also means the properties entry must literally include the ')'.
Solutions
- Reselect the sub-transformation in the Single Threader dialog to refresh the path
- Confirm the directory exists in the Repository explorer of the connected repository
- Ensure you are connected to the repository where the sub-transformation lives
- If fixing message bundles, define the key exactly as "SingleThreaderDialog.Exception.UnableToFindRepositoryDirectory)" including the paren, or correct the key in code
Example fix
// before String transPath = "/deleted-dir/sub-trans"; // findDirectory -> null // after String transPath = "/public/flows/sub-trans"; // existing directory
Defensive patterns
Strategy: validation
Validate before calling
// Java: confirm the target directory exists before loading RepositoryDirectoryInterface dir = repository.findDirectory( realDirectory ); if ( dir == null ) throw new IllegalStateException( "Directory not found: " + realDirectory );
Type guard
boolean dirExists = realDirectory != null && repository.findDirectory( realDirectory ) != null;
Try / catch
try { loadSubTrans( path ); } catch ( KettleException e ) { showRepositoryBrowserToReselect(); } Prevention
- Avoid renaming/deleting directories holding referenced sub-transformations without updating references
- Check repository connectivity and correct repo before loading
- Note the message key contains a stray ')' — keep properties keys in sync with code
When it happens
Trigger: Loading the Single Threader mapping by repository name where the directory prefix of the stored path does not exist in the connected repository.
Common situations: Sub-transformation folder renamed/deleted after reference was saved; pointing at a different repository; case-sensitive path mismatches; migrated transformations.
Related errors
- SimpleMappingDialog.Exception.UnableToFindRepositoryDirector…
- SingleThreaderDialog.Exception.NoValidMappingDetailsFound
- GetRepositoryNames.Exception.NotConnectedToRepository
- JobExecutorDialog.Exception.UnableToFindRepositoryDirectory
- Repository does not support revisions
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/901296d505029356.
Report an issue: GitHub.
Appendix: source
Thrown at ui/src/main/java/org/pentaho/di/ui/trans/steps/singlethreader/SingleThreaderDialog.java:549
filename = filename.replace( ".ktr", "" );
wPath.setText( filename );
}
String transPath = transMeta.environmentSubstitute( filename );
String realTransname = transPath;
String realDirectory = "";
int index = transPath.lastIndexOf( "/" );
if ( index != -1 ) {
realTransname = transPath.substring( index + 1 );
realDirectory = transPath.substring( 0, index );
}
if ( Utils.isEmpty( realDirectory ) || Utils.isEmpty( realTransname ) ) {
throw new KettleException(
BaseMessages.getString( PKG, "SingleThreaderDialog.Exception.NoValidMappingDetailsFound" ) );
}
RepositoryDirectoryInterface repdir = repository.findDirectory( realDirectory );
if ( repdir == null ) {
throw new KettleException( BaseMessages.getString(
PKG, "SingleThreaderDialog.Exception.UnableToFindRepositoryDirectory)" ) );
}
loadRepositoryTrans( realTransname, repdir );
break;
case REPOSITORY_BY_REFERENCE:
mappingTransMeta = repository.loadTransformation( referenceObjectId, null ); // load the last version
mappingTransMeta.clearChanged();
break;
default:
break;
}
wInjectStep.setText( getInjectorStep( mappingTransMeta ) );
}
/**
* Copy information from the meta-data input to the dialog fields.
*/View on GitHub (pinned to f3058517a1)