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

  1. Verify the directory path in the filename field exists in the repository (browse in Spoon).
  2. Ensure you are connected to the correct repository and your user can see that directory.
  3. Refresh the repository directory tree / regenerate the file list so paths are current.
  4. 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

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


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 row

View on GitHub (pinned to f3058517a1)