{"record":{"id":"6b79bf673b43737e","repo":"pentaho/pentaho-kettle","slug":"unable-to-find-repository-repositoryname","errorCode":null,"errorMessage":"Unable to find repository: \" + repositoryName","messagePattern":"Unable to find repository: \" \\+ repositoryName","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/www/ExecuteTransServlet.java","lineNumber":408,"sourceCode":"        throw new KettleException( \"Unable to find transformation '\" + name + \"' in directory :\" + directory );\n      }\n      // TODO BACKLOG-44138 need to pass parent variablespace\n      TransMeta transMeta = repository.loadTransformation( transformationID, null, parentVariableSpace );\n      return transMeta;\n    }\n  }\n\n  private Repository openRepository( String repositoryName, String user, String pass ) throws KettleException {\n\n    if ( Utils.isEmpty( repositoryName ) ) {\n      return null;\n    }\n\n    RepositoriesMeta repositoriesMeta = new RepositoriesMeta();\n    repositoriesMeta.readData();\n    RepositoryMeta repositoryMeta = repositoriesMeta.findRepository( repositoryName );\n    if ( repositoryMeta == null ) {\n      throw new KettleException( \"Unable to find repository: \" + repositoryName );\n    }\n    PluginRegistry registry = PluginRegistry.getInstance();\n    Repository repository = registry.loadClass( RepositoryPluginType.class, repositoryMeta, Repository.class );\n    repository.init( repositoryMeta );\n    repository.connect( user, pass );\n    return repository;\n  }\n\n  public String toString() {\n    return \"Start transformation\";\n  }\n\n  public String getService() {\n    return CONTEXT_PATH + \" (\" + toString() + \")\";\n  }\n\n  protected void executeTrans( Trans trans ) throws KettleException {\n    trans.prepareExecution( null );","sourceCodeStart":390,"sourceCodeEnd":426,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/www/ExecuteTransServlet.java#L390-L426","documentation":"KettleException thrown by ExecuteTransServlet.openRepository when findRepository(repositoryName) returns null — the repository named in the request is not defined in the server's repositories.xml. Mirror of the ExecuteJobServlet check but with an inline, non-localized message.","triggerScenarios":"GET /kettle/executeTrans/ with a rep parameter not matching any RepositoryMeta loaded by RepositoriesMeta.readData() from ~/.kettle/repositories.xml.","commonSituations":"repositories.xml absent or unreadable on the Carte host; repository renamed; typo in rep; Carte running under a service account whose home lacks .kettle/repositories.xml; cluster nodes configured inconsistently.","solutions":["Define the repository in the Carte server's ~/.kettle/repositories.xml","Correct the rep request parameter to the exact repository name","Verify KETTLE_HOME/home directory of the Carte process resolves to the right .kettle dir","Restart Carte after repository configuration changes","Audit all cluster nodes for consistent repositories.xml content"],"exampleFix":"// before\nString repParam = \"slave_repo\"; // undefined on this Carte node\n// after\n// repositories.xml: <repository><name>slave_repo</name>...</repository>\nString repParam = \"slave_repo\"; // now resolvable","handlingStrategy":"validation","validationCode":"RepositoriesMeta meta = new RepositoriesMeta();\nmeta.readData();\nif ( meta.findRepository( rep ) == null ) {\n  throw new IllegalStateException( \"Repository not found on server: \" + rep );\n}","typeGuard":null,"tryCatchPattern":"try {\n  // executeTrans request\n} catch ( KettleException e ) {\n  if ( e.getMessage().startsWith( \"Unable to find repository\" ) ) {\n    LOG.error( \"Define repository '\" + rep + \"' in server's ~/.kettle/repositories.xml\", e );\n  }\n}","preventionTips":["Provision repositories.xml on every Carte node identically","Verify the Carte service account can read its .kettle directory","Match rep parameters exactly against the XML definitions","Restart Carte after repository configuration updates"],"tags":["repository","configuration","servlet","pdi"],"backgroundTag":"config-file-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"}