{"record":{"id":"c61140ef82a55f74","repo":"pentaho/pentaho-kettle","slug":"insertupdatemeta-exception","errorCode":null,"errorMessage":"InsertUpdateMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository","messagePattern":"InsertUpdateMeta\\.Exception\\.UnexpectedErrorReadingStepInfoFromRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/insertupdate/InsertUpdateMeta.java","lineNumber":390,"sourceCode":"      int nrvalues = rep.countNrStepAttributes( id_step, \"value_name\" );\n\n      allocate( nrkeys, nrvalues );\n\n      for ( int i = 0; i < nrkeys; i++ ) {\n        keyFields[ i ].setKeyStream( rep.getStepAttributeString( id_step, i, \"key_name\" ) );\n        keyFields[ i ].setKeyLookup( rep.getStepAttributeString( id_step, i, \"key_field\" ) );\n        keyFields[ i ].setKeyCondition( rep.getStepAttributeString( id_step, i, \"key_condition\" ) );\n        keyFields[ i ].setKeyStream2( rep.getStepAttributeString( id_step, i, \"key_name2\" ) );\n      }\n\n      for ( int i = 0; i < nrvalues; i++ ) {\n        updateFields[ i ].setUpdateLookup( rep.getStepAttributeString( id_step, i, \"value_name\" ) );\n        updateFields[ i ].setUpdateStream( rep.getStepAttributeString( id_step, i, \"value_rename\" ) );\n        updateFields[ i ].setUpdate(\n          Boolean.valueOf( rep.getStepAttributeBoolean( id_step, i, \"value_update\", true ) ) );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"InsertUpdateMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository\" ), 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.saveDatabaseMetaStepAttribute( id_transformation, id_step, \"id_connection\", databaseMeta );\n      rep.saveStepAttribute( id_transformation, id_step, \"commit\", commitSize );\n      rep.saveStepAttribute( id_transformation, id_step, \"schema\", schemaName );\n      rep.saveStepAttribute( id_transformation, id_step, \"table\", tableName );\n      rep.saveStepAttribute( id_transformation, id_step, \"update_bypassed\", updateBypassed );\n\n      for ( int i = 0; i < keyFields.length; i++ ) {\n        rep.saveStepAttribute( id_transformation, id_step, i, \"key_name\", keyFields[ i ].getKeyStream() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"key_field\", keyFields[ i ].keyLookup );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"key_condition\", keyFields[ i ].getKeyCondition() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"key_name2\", keyFields[ i ].getKeyStream2() );","sourceCodeStart":372,"sourceCodeEnd":408,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/insertupdate/InsertUpdateMeta.java#L372-L408","documentation":"readRep failed while reading the step's configuration from the repository database; any exception is wrapped in a KettleException. The stored step attributes could not be fetched or interpreted for this Insert/Update step.","triggerScenarios":"Repository connectivity failure while calling rep.getStepAttributeString/Boolean; repository schema out of sync with the PDI version; corrupted rows in R_STEP_ATTRIBUTE; inconsistent nrfields attribute.","commonSituations":"Database metadata repository unreachable or credentials expired; repository upgraded by newer PDI then opened by older; manual edits to repository tables.","solutions":["Test the repository database connection and re-login.","Check the wrapped cause (e) for the underlying repository/SQL error.","Restore consistency of R_STEP_ATTRIBUTE rows from backup, or re-save the step in Spoon to rewrite attributes.","Run repository upgrade scripts so the schema matches the PDI version."],"exampleFix":"// diagnostic approach\ntry { stepMeta.loadRep(rep, metaStore, id_step, databases, metaStore); }\ncatch (KettleException e) { logError(\"cause:\", e); } // inspect root cause","handlingStrategy":"try-catch","validationCode":"// check repository connectivity before load\nRepository rep = new KettleDatabaseRepository();\nrep.init(repositoryMeta);\nrep.connect(username, password); // throws early if repo unreachable","typeGuard":"null","tryCatchPattern":"try { stepMeta.loadRep(rep, metaStore, idStep, databases, metaStore); }\ncatch (KettleException e) {\n  logError(\"Repository read failed; root cause:\", e.getCause());\n  throw e;\n}","preventionTips":["Test repository connection before scripted loads.","Keep PDI and repository schema versions in sync.","Never edit repository tables manually.","Schedule repository database backups."],"tags":["kettle","repository","metadata","persistence"],"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"}