{"record":{"id":"cbe83f0eaa1339e3","repo":"pentaho/pentaho-kettle","slug":"jobexecutordialog-exception-unabletofindrepositorydirectory","errorCode":"JobExecutorDialog.Exception.UnableToFindRepositoryDirectory","errorMessage":"JobExecutorDialog.Exception.UnableToFindRepositoryDirectory","messagePattern":"JobExecutorDialog\\.Exception\\.UnableToFindRepositoryDirectory","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"ui/src/main/java/org/pentaho/di/ui/trans/steps/jobexecutor/JobExecutorDialog.java","lineNumber":393,"sourceCode":"        if ( Utils.isEmpty( filename ) ) {\n          return;\n        }\n        String transPath = transMeta.environmentSubstitute( filename );\n        String realJobname = transPath;\n        String realDirectory = \"\";\n        int index = transPath.lastIndexOf( \"/\" );\n        if ( index != -1 ) {\n          realJobname = transPath.substring( index + 1 );\n          realDirectory = transPath.substring( 0, index );\n        }\n\n        if ( Utils.isEmpty( realDirectory ) || Utils.isEmpty( realJobname ) ) {\n          throw new KettleException(\n            BaseMessages.getString( PKG, \"JobExecutorDialog.Exception.NoValidMappingDetailsFound\" ) );\n        }\n        RepositoryDirectoryInterface repdir = repository.findDirectory( realDirectory );\n        if ( repdir == null ) {\n          throw new KettleException( BaseMessages.getString(\n            PKG, \"JobExecutorDialog.Exception.UnableToFindRepositoryDirectory\" ) );\n        }\n        loadRepositoryJob( realJobname, repdir );\n        break;\n      default:\n        break;\n    }\n  }\n\n\n  /**\n   * Copy information from the meta-data input to the dialog fields.\n   */\n  public void getData() {\n    specificationMethod = jobExecutorMeta.getSpecificationMethod();\n    switch ( specificationMethod ) {\n      case FILENAME:\n        wPath.setText( Const.NVL( jobExecutorMeta.getFileName(), \"\" ) );","sourceCodeStart":375,"sourceCodeEnd":411,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/ui/src/main/java/org/pentaho/di/ui/trans/steps/jobexecutor/JobExecutorDialog.java#L375-L411","documentation":"Thrown by JobExecutorDialog.loadJob after the job path was successfully split into directory and name, but repository.findDirectory(realDirectory) returned null. The dialog cannot resolve the referenced directory inside the connected repository, so it refuses to load the job.","triggerScenarios":"Calling loadJob (via getData, getParametersFromJob, or ok) when the directory portion of the configured job path does not exist in the currently connected repository.","commonSituations":"The job was moved or renamed in the repository, the dialog is connected to a different repository/environment than the one where the job lives, or the path uses wrong casing on a case-sensitive repository.","solutions":["Connect to the repository that actually contains the referenced directory","Browse the repository in the dialog and re-select the job so the path is regenerated","Verify the directory path exists (e.g. in Spoon's repository tree)","Update the JobExecutor step configuration to the new path if the job was moved"],"exampleFix":"// before\nString path = \"/oldFolder/MyJob\";\n// after\nString path = \"/newFolder/MyJob\"; // after verifying folder exists in connected repo","handlingStrategy":"validation","validationCode":"RepositoryDirectoryInterface dir = repository.findDirectory(realDirectory);\nif (dir == null) throw new IllegalStateException(\"Directory not found in repository: \" + realDirectory);","typeGuard":null,"tryCatchPattern":"try { loadJob(); } catch (KettleException e) { // prompt user to re-browse repository for the job }","preventionTips":["Confirm you are connected to the correct repository before opening the dialog","Re-select jobs via browse after any repository move/rename","Keep dev/prod repository paths consistent"],"tags":["pentaho-kettle","swt-dialog","repository","directory-not-found"],"backgroundTag":"directory-not-found","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}