{"record":{"id":"07cd30923dff0158","repo":"pentaho/pentaho-kettle","slug":"error-loading-transformation-executor-details-from-xml","errorCode":null,"errorMessage":"Error loading transformation executor details from XML","messagePattern":"Error loading transformation executor details from XML","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/transexecutor/TransExecutorMeta.java","lineNumber":378,"sourceCode":"\n      int nrFields = XMLHandler.countNodes( stepnode, \"result_rows_field\" );\n      allocate( nrFields );\n\n      for ( int i = 0; i < nrFields; i++ ) {\n\n        Node fieldNode = XMLHandler.getSubNodeByNr( stepnode, \"result_rows_field\", i );\n\n        outputRowsField[ i ] = XMLHandler.getTagValue( fieldNode, \"name\" );\n        outputRowsType[ i ] = ValueMetaFactory.getIdForValueMeta( XMLHandler.getTagValue( fieldNode, \"type\" ) );\n        outputRowsLength[ i ] = Const.toInt( XMLHandler.getTagValue( fieldNode, \"length\" ), -1 );\n        outputRowsPrecision[ i ] = Const.toInt( XMLHandler.getTagValue( fieldNode, \"precision\" ), -1 );\n      }\n\n      resultFilesTargetStep = XMLHandler.getTagValue( stepnode, F_RESULT_FILE_TARGET_STEP );\n      resultFilesFileNameField = XMLHandler.getTagValue( stepnode, \"result_files_file_name_field\" );\n      executorsOutputStep = XMLHandler.getTagValue( stepnode, F_EXECUTOR_OUTPUT_STEP );\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString( PKG,\n        \"TransExecutorMeta.Exception.ErrorLoadingTransExecutorDetailsFromXML\" ), e );\n    }\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )\n    throws KettleException {\n    String method = rep.getStepAttributeString( id_step, \"specification_method\" );\n    specificationMethod = ObjectLocationSpecificationMethod.getSpecificationMethodByCode( method );\n    String transId = rep.getStepAttributeString( id_step, \"trans_object_id\" );\n    transObjectId = Utils.isEmpty( transId ) ? null : new StringObjectId( transId );\n    transName = rep.getStepAttributeString( id_step, \"trans_name\" );\n    fileName = rep.getStepAttributeString( id_step, \"filename\" );\n    directoryPath = rep.getStepAttributeString( id_step, \"directory_path\" );\n\n    groupSize = rep.getStepAttributeString( id_step, \"group_size\" );\n    groupField = rep.getStepAttributeString( id_step, \"group_field\" );\n    groupTime = rep.getStepAttributeString( id_step, \"group_time\" );\n","sourceCodeStart":360,"sourceCodeEnd":396,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/transexecutor/TransExecutorMeta.java#L360-L396","documentation":"TransExecutorMeta.loadXML() wraps any exception while parsing the TransExecutor step's XML configuration (sub-transformation path/reference, execution result target fields, grouping settings) into a KettleXMLException. It means the .ktr XML for this step could not be read.","triggerScenarios":"Loading a .ktr whose TransExecutor step XML is malformed or has values that fail parsing inside the try block covering XMLHandler.getTagValue calls (execution config, result field names, target step names).","commonSituations":"Hand-edited or corrupted .ktr files; transformations from incompatible Pentaho versions with changed XML tags; git merge conflicts in transformation files.","solutions":["Inspect the .ktr XML for the TransExecutor step and repair malformed tags.","Open the step in Spoon and reconfigure it to regenerate valid XML.","Load with the Pentaho version that produced the file, or migrate via Spoon.","Check the chained cause for the exact XMLHandler failure."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { transMeta.loadXML(file, ...); }\ncatch (KettleXMLException e) {\n  log.error(\"TransExecutor XML invalid: {}\", e.getCause(), e);\n}","preventionTips":["Edit TransExecutor steps only via Spoon","Validate .ktr XML after manual merges","Keep Pentaho versions consistent across environments"],"tags":["xml","kettle","executor","parsing"],"backgroundTag":"xml-parse-error","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"}