{"record":{"id":"6e8bb9b83155e730","repo":"pentaho/pentaho-kettle","slug":"getpreviousrowfieldmeta-exception-6e8bb9","errorCode":null,"errorMessage":"GetPreviousRowFieldMeta.Exception.UnexpectedErrorInReadingStepInfo","messagePattern":"GetPreviousRowFieldMeta\\.Exception\\.UnexpectedErrorInReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/get-previous-row-field/core/src/main/java/org/pentaho/di/trans/steps/getpreviousrowfield/GetPreviousRowFieldMeta.java","lineNumber":196,"sourceCode":"    return retval.toString();\n  }\n\n  @Override\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n\n    try {\n      schema = rep.getStepAttributeString( id_step, \"schema\" );\n\n      int nrkeys = rep.countNrStepAttributes( id_step, \"in_stream_name\" );\n\n      // TODO NVL\n      allocate( nrkeys );\n      for ( int i = 0; i < nrkeys; i++ ) {\n        fieldInStream[i] = Const.NVL( rep.getStepAttributeString( id_step, i, \"in_stream_name\" ), \"\" );\n        fieldOutStream[i] = Const.NVL( rep.getStepAttributeString( id_step, i, \"out_stream_name\" ), \"\" );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"GetPreviousRowFieldMeta.Exception.UnexpectedErrorInReadingStepInfo\" ), e );\n    }\n  }\n\n  @Override\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"schema\", schema );\n\n      for ( int i = 0; i < fieldInStream.length; i++ ) {\n        rep.saveStepAttribute( id_transformation, id_step, i, \"in_stream_name\", fieldInStream[i] );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"out_stream_name\", fieldOutStream[i] );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"GetPreviousRowFieldMeta.Exception.UnableToSaveStepInfo\" )\n        + id_step, e );\n    }","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/get-previous-row-field/core/src/main/java/org/pentaho/di/trans/steps/getpreviousrowfield/GetPreviousRowFieldMeta.java#L178-L214","documentation":"GetPreviousRowFieldMeta.readRep() loads the step's field configuration from the repository. If reading step attributes (counting/reading in_stream_name/out_stream_name entries) throws, the exception is wrapped in a KettleException with this localized message. It indicates a repository-level failure while deserializing step metadata.","triggerScenarios":"Opening a transformation from a repository when the step attribute rows are missing/corrupt or the repository query fails (connection dropped, schema mismatch, bad id_step).","commonSituations":"Repository schema drift after an upgrade; network interruption mid-load; orphaned step attributes after a partial delete; permissions issues on the repository user.","solutions":["Check repository connectivity and retry loading the transformation","Inspect the cause for the underlying SQL error and fix schema/permissions","Re-save the step from Spoon to rewrite its attributes","Restore or repair the repository's step attribute tables from backup"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (rep == null || !rep.isConnected()) { throw new IllegalStateException(\"Repository not connected before readRep\"); }","typeGuard":null,"tryCatchPattern":"try { meta.readRep(rep, metaStore, id_step, databases); } catch (KettleException e) { log.error(\"readRep failed: \" + e.getCause(), e); }","preventionTips":["Maintain repository schema upgrades in lockstep with runtime","Verify connectivity before bulk transformation loads","Audit step attribute tables for orphaned rows","Use a repository user with read access to all needed schemas"],"tags":["database","repository","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"}