pentaho/pentaho-kettle · error · KettleException
AutoDoc.Exception.RepositoryDirectoryNotFound
AutoDoc.Exception.RepositoryDirectoryNotFound
Error message
AutoDoc.Exception.RepositoryDirectoryNotFound
What it means
AutoDoc.processRow throws KettleException 'AutoDoc.Exception.RepositoryDirectoryNotFound' when the repository directory tree (data.tree) cannot find the directory portion of the fileName path. findDirectory returns null for the directoryName extracted before the last slash. It means the referenced object's repository path does not exist in the loaded directory tree.
Solutions
- Verify the directory path in the filename field exists in the repository (browse in Spoon).
- Ensure you are connected to the correct repository and your user can see that directory.
- Refresh the repository directory tree / regenerate the file list so paths are current.
- Fix the filename values to use full repository paths starting from root (e.g. /home/admin/myTrans).
Example fix
// before fileName = "myTrans"; // no directory context // after fileName = "/home/admin/myTrans"; // full existing repository path
Defensive patterns
Strategy: validation
Validate before calling
RepositoryDirectoryInterface dir = rep.loadRepositoryDirectoryTree().findDirectory(directoryName);
if (dir == null) {
throw new IllegalStateException("Repository directory does not exist: " + directoryName);
} Prevention
- Use full repository paths starting with '/' in filename values.
- Regenerate the object list after moving repository items.
- Confirm the connected repository and user visibility before running AutoDoc.
When it happens
Trigger: Running against a repository when fileName like '/home/admin/myTrans' refers to a directory that was deleted, renamed, or to which the user lacks visibility; lastSlashIndex parsing yields a wrong path when fileName has no slash.
Common situations: Object moved to a different repository folder after the file list was generated; connecting to a different repository than where the objects live; case-sensitivity or leading-slash differences in directory names.
Related errors
- Unable to find repository directory [
- Unable to get ID for job [name]
- AbsSecurityProvider.ERROR_0002_UNABLE_TO_ACCESS_IS_ALLOWED
- AccessInputMeta.Exception.ErrorReadingRepository
- AddSequenceMeta.Exception.UnableToReadStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/d5ff81a9e73b291b.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/autodoc/AutoDoc.java:205
case JOB:
location = new ReportSubjectLocation( fileName, null, null, objectType );
break;
default:
break;
}
} else {
int lastSlashIndex = fileName.lastIndexOf( RepositoryDirectory.DIRECTORY_SEPARATOR );
if ( lastSlashIndex < 0 ) {
fileName = RepositoryDirectory.DIRECTORY_SEPARATOR + fileName;
lastSlashIndex = 0;
}
String directoryName = fileName.substring( 0, lastSlashIndex + 1 );
String objectName = fileName.substring( lastSlashIndex + 1 );
RepositoryDirectoryInterface directory = data.tree.findDirectory( directoryName );
if ( directory == null ) {
throw new KettleException( BaseMessages.getString(
PKG, "AutoDoc.Exception.RepositoryDirectoryNotFound", directoryName ) );
}
location = new ReportSubjectLocation( null, directory, objectName, objectType );
}
if ( location == null ) {
throw new KettleException( BaseMessages.getString(
PKG, "AutoDoc.Exception.UnableToDetermineLocation", fileName, fileType ) );
}
if ( meta.getOutputType() != OutputType.METADATA ) {
// Add the file location to the list for later processing in one output report
//
data.filenames.add( location );
} else {
// Load the metadata from the transformation / job...
// Output it in one row for each input rowView on GitHub (pinned to f3058517a1)