{"record":{"id":"a553375e38359fa7","repo":"pentaho/pentaho-kettle","slug":"getxmldatameta-exception-errorreadingrepository-localized","errorCode":null,"errorMessage":"GetXMLDataMeta.Exception.ErrorReadingRepository (localized message)","messagePattern":"GetXMLDataMeta\\.Exception\\.ErrorReadingRepository \\(localized message\\)","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/getxmldata/GetXMLDataMeta.java","lineNumber":1091,"sourceCode":"\n        inputFields[i] = field;\n      }\n      inFields = rep.getStepAttributeBoolean( id_step, TAG_IS_IN_FIELDS );\n      IsAFile = rep.getStepAttributeBoolean( id_step, TAG_IS_A_FILE );\n\n      xmlField = rep.getStepAttributeString( id_step, TAG_XML_FIELD );\n      prunePath = rep.getStepAttributeString( id_step, TAG_PRUNE_PATH );\n\n      shortFileFieldName = rep.getStepAttributeString( id_step, TAG_SHORT_FILE_FIELD_NAME );\n      extensionFieldName = rep.getStepAttributeString( id_step, TAG_EXTENSION_FIELD_NAME );\n      pathFieldName = rep.getStepAttributeString( id_step, TAG_PATH_FIELD_NAME );\n      sizeFieldName = rep.getStepAttributeString( id_step, TAG_SIZE_FIELD_NAME );\n      hiddenFieldName = rep.getStepAttributeString( id_step, TAG_HIDDEN_FIELD_NAME );\n      lastModificationTimeFieldName = rep.getStepAttributeString( id_step, TAG_LAST_MODIFICATION_TIME_FIELD_NAME );\n      uriNameFieldName = rep.getStepAttributeString( id_step, TAG_URI_NAME_FIELD_NAME );\n      rootUriNameFieldName = rep.getStepAttributeString( id_step, TAG_ROOT_URI_NAME_FIELD_NAME );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"GetXMLDataMeta.Exception.ErrorReadingRepository\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )\n    throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, TAG_INCLUDE, includeFilename );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_INCLUDE_FIELD, filenameField );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_ADD_RESULT_FILE, addResultFile );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_NAME_SPACE_AWARE, nameSpaceAware );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_IGNORE_COMMENTS, ignorecomments );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_READ_URL, readurl );\n\n      rep.saveStepAttribute( id_transformation, id_step, TAG_VALIDATING, validating );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_USE_TOKEN, usetoken );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_IS_IGNORE_EMPTY_FILE, IsIgnoreEmptyFile );\n      rep.saveStepAttribute( id_transformation, id_step, TAG_DO_NOT_FAIL_IF_NO_FILE, doNotFailIfNoFile );\n","sourceCodeStart":1073,"sourceCodeEnd":1109,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/getxmldata/GetXMLDataMeta.java#L1073-L1109","documentation":"GetXMLDataMeta.readRepo (loadStepAttributes from a repository) wraps any exception while fetching the step's settings from the repository database in a KettleException with localized message 'GetXMLDataMeta.Exception.ErrorReadingRepository'. It means the step metadata could not be loaded from the repository.","triggerScenarios":"The readRep(...) catch block: rep.getStepAttributeString/getStepAttributeInteger calls throw, e.g. repository connection loss, missing step record, or repository schema issues.","commonSituations":"Repository database down or network dropped mid-load, corrupted repository rows, loading a transformation that references a deleted step id, repository upgrade mismatch between client and server schema.","solutions":["Check repository connectivity (test connection in Spoon) and retry loading the transformation.","Verify the transformation/step rows exist in R_STEP/related repository tables; restore from backup if corrupted.","Recreate the GetXMLData step in the transformation and re-save it to the repository.","Confirm client and repository schema versions match; run the repository upgrade scripts if needed."],"exampleFix":"// before: load assumes repository reachable\ntransMeta = TransMeta.fromRepository( rep, \"prod/load_xml\" );\n// after: validate connection first\nif ( !rep.connect( \"admin\", \"password\" ) ) { throw new KettleException( \"Repository unavailable\" ); }\ntransMeta = TransMeta.fromRepository( rep, \"prod/load_xml\" );","handlingStrategy":"retry","validationCode":"// Verify repository connectivity before loading metadata\nif ( !rep.testConnection() ) { throw new IllegalStateException( \"Repository unreachable\" ); }","typeGuard":null,"tryCatchPattern":"for ( int i = 0; i < 3; i++ ) { try { return new TransMeta( rep, \"load_xml\" ); } catch ( KettleException e ) { backoff( i ); } } throw e;","preventionTips":["Monitor repository database availability before scheduled runs.","Keep client PDI version aligned with the repository schema.","Back up repository tables so corrupted step rows can be restored."],"tags":["pentaho-kettle","repository","database","metadata"],"backgroundTag":"database-query-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"}