{"record":{"id":"1bb8be52125f96d3","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-slave-server-from-the-file-repository","errorCode":null,"errorMessage":"Unable to load slave server from the file repository","messagePattern":"Unable to load slave server from the file repository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/repository/filerep/KettleFileRepository.java","lineNumber":1090,"sourceCode":"      }\n\n      return list;\n    } catch ( Exception e ) {\n      throw new KettleException( \"Unable to get list of jobs in folder with id : \" + id_directory, e );\n    }\n  }\n\n  public int getNrSubDirectories( ObjectId id_directory ) throws KettleException {\n\n    return 0;\n  }\n\n  @Override\n  public SlaveServer loadSlaveServer( ObjectId id_slave_server, String versionName ) throws KettleException {\n    try {\n      return new SlaveServer( loadNodeFromXML( id_slave_server, SlaveServer.XML_TAG ) );\n    } catch ( Exception e ) {\n      throw new KettleException( \"Unable to load slave server from the file repository\", e );\n    }\n  }\n\n  @Override\n  public TransMeta loadTransformation( String transname, RepositoryDirectoryInterface repdir,\n    ProgressMonitorListener monitor, boolean setInternalVariables, String versionName ) throws KettleException {\n\n    // This is a standard load of a transformation serialized in XML...\n    //\n    String filename = calcDirectoryName( repdir ) + transname + \".ktr\";\n    TransMeta transMeta = new TransMeta( DefaultBowl.getInstance(), filename, this, setInternalVariables );\n    transMeta.setRepository( this );\n    transMeta.setMetaStore( MetaStoreConst.getDefaultMetastore() );\n    transMeta.setFilename( null );\n    transMeta.setName( transname );\n    transMeta.setObjectId( new StringObjectId( calcObjectId( repdir, transname, EXT_TRANSFORMATION ) ) );\n\n    transMeta.clearChanged();","sourceCodeStart":1072,"sourceCodeEnd":1108,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/repository/filerep/KettleFileRepository.java#L1072-L1108","documentation":"KettleFileRepository.loadSlaveServer() throws this KettleException when it cannot parse or locate the slave server XML node for the given ObjectId. Slave servers are stored as XML fragments in the file repository; loadNodeFromXML() failure or bad XML content triggers it.","triggerScenarios":"Calling loadSlaveServer(ObjectId id_slave_server, String versionName) when the id points to a missing file, the XML file is corrupt or does not contain the SlaveServer.XML_TAG node, or loadNodeFromXML throws.","commonSituations":"Slave server definition file manually edited or truncated; repository copied partially leaving slave definitions behind; id obtained from an out-of-date directory listing after the slave file was deleted.","solutions":["Inspect the cause to determine whether the file is missing or the XML is invalid","Verify the slave server file exists under the repository base directory","Re-create the slave server definition via Spoon and re-save it to the repository","Refresh the directory tree and re-resolve the slave server ObjectId"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!repo.exists(idSlaveServer)) {\n  throw new IllegalStateException(\"Slave server id not found: \" + idSlaveServer);\n}","typeGuard":null,"tryCatchPattern":"try {\n  SlaveServer slave = repo.loadSlaveServer(id, null);\n} catch (KettleException e) {\n  log.error(\"Slave server load failed, check XML file integrity\", e);\n}","preventionTips":["Do not hand-edit slave server XML files","Re-save slave definitions from Spoon after upgrades","Refresh directory listings before resolving ids"],"tags":["repository","slave-server","xml","kettle"],"backgroundTag":"file-read-failed","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"}