{"record":{"id":"0aa3fde4db9cf665","repo":"pentaho/pentaho-kettle","slug":"filterrowsmeta-exception","errorCode":"FilterRowsMeta.Exception.UnexpectedErrorInReadingStepInfoFromRepository","errorMessage":"FilterRowsMeta.Exception.UnexpectedErrorInReadingStepInfoFromRepository","messagePattern":"FilterRowsMeta\\.Exception\\.UnexpectedErrorInReadingStepInfoFromRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/filterrows/FilterRowsMeta.java","lineNumber":206,"sourceCode":"        PKG, \"FilterRowsMeta.Exception..UnableToLoadStepInfoFromXML\" ), e );\n    }\n  }\n\n  public void setDefault() {\n    allocate();\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      allocate();\n\n      setTrueStepname( rep.getStepAttributeString( id_step, \"send_true_to\" ) );\n      setFalseStepname( rep.getStepAttributeString( id_step, \"send_false_to\" ) );\n\n      condition = rep.loadConditionFromStepAttribute( id_step, \"id_condition\" );\n\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"FilterRowsMeta.Exception.UnexpectedErrorInReadingStepInfoFromRepository\" ), e );\n    }\n  }\n\n  @Override\n  public void searchInfoAndTargetSteps( List<StepMeta> steps ) {\n    List<StreamInterface> targetStreams = getStepIOMeta().getTargetStreams();\n    for ( StreamInterface stream : targetStreams ) {\n      stream.setStepMeta( StepMeta.findStep( steps, (String) stream.getSubject() ) );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      if ( condition != null ) {\n        rep.saveConditionStepAttribute( id_transformation, id_step, \"id_condition\", condition );\n        rep.saveStepAttribute( id_transformation, id_step, \"send_true_to\", getTrueStepname() );\n        rep.saveStepAttribute( id_transformation, id_step, \"send_false_to\", getFalseStepname() );","sourceCodeStart":188,"sourceCodeEnd":224,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/filterrows/FilterRowsMeta.java#L188-L224","documentation":"FilterRowsMeta.readRep wraps any exception raised while reading the Filter Rows step's attributes (true/false target stepnames and the stored condition) from the repository in a KettleException using this message key. It signals the step definition could not be restored from the repository, not a runtime data problem. The original cause is chained as the nested exception.","triggerScenarios":"Calling readRep on a FilterRowsMeta when rep.getStepAttributeString fails, the 'id_condition' attribute is missing/corrupt, loadConditionFromStepAttribute throws, or the repository connection fails mid-read.","commonSituations":"Corrupted or manually edited repository rows for the transformation; a repository schema/version mismatch where condition attributes were written by a different Kettle version; network drops to a database repository while loading a transformation.","solutions":["Inspect the nested (cause) exception in the KettleException stack trace to find the real repository read failure","Verify the repository connection (URL, credentials, network) and retry loading the transformation","Check the r_step_attribute rows for this step's id_step, especially the id_condition entry, and repair or delete corrupt rows","If the transformation is damaged, re-open/re-save it from a working copy or restore from repository backup"],"exampleFix":"// before\ncondition = rep.loadConditionFromStepAttribute( id_step, \"id_condition\" ); // throws NPE if missing\n// after\ncondition = rep.loadConditionFromStepAttribute( id_step, \"id_condition\" );\nif ( condition == null ) {\n  condition = new Condition(); // default empty condition instead of failing\n}","handlingStrategy":"try-catch","validationCode":"// before loading\nif ( rep != null && rep.isConnected() ) {\n  // proceed with transMeta = new TransMeta(rep, ...)\n}","typeGuard":null,"tryCatchPattern":"try {\n  filterRowsMeta.readRep( rep, metaStore, idStep, databases, metaStore );\n} catch ( KettleException e ) {\n  logError( \"Step load failed: \" + e.getCause(), e ); // act on the chained cause\n}","preventionTips":["Always log/inspect getCause() of KettleException from readRep","Keep repository database connections healthy and backed up","Avoid hand-editing repository attribute tables","Pin consistent PDI versions across environments"],"tags":["pdi","kettle","repository","metadata-load"],"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"}