{"record":{"id":"00b59554ddb4eb6c","repo":"pentaho/pentaho-kettle","slug":"orabulkloadermeta-exception","errorCode":null,"errorMessage":"OraBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository","messagePattern":"OraBulkLoaderMeta\\.Exception\\.UnexpectedErrorReadingStepInfoFromRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/oracle-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/orabulkloader/OraBulkLoaderMeta.java","lineNumber":563,"sourceCode":"      dbNameOverride = rep.getStepAttributeString( id_step, \"dbname_override\" );\n\n      characterSetName = rep.getStepAttributeString( id_step, \"character_set\" );\n      failOnWarning = rep.getStepAttributeBoolean( id_step, \"fail_on_warning\" );\n      failOnError = rep.getStepAttributeBoolean( id_step, \"fail_on_error\" );\n      parallel = rep.getStepAttributeBoolean( id_step, \"parallel\" );\n      altRecordTerm = rep.getStepAttributeString( id_step, \"alt_rec_term\" );\n\n      int nrvalues = rep.countNrStepAttributes( id_step, \"stream_name\" );\n\n      allocate( nrvalues );\n\n      for ( int i = 0; i < nrvalues; i++ ) {\n        fieldTable[i] = rep.getStepAttributeString( id_step, i, \"stream_name\" );\n        fieldStream[i] = rep.getStepAttributeString( id_step, i, \"field_name\" );\n        dateMask[i] = rep.getStepAttributeString( id_step, i, \"date_mask\" );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"OraBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) 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, \"bind_size\", bindSize );\n      rep.saveStepAttribute( id_transformation, id_step, \"read_size\", readSize );\n      rep.saveStepAttribute( id_transformation, id_step, \"errors\", maxErrors );\n      rep.saveStepAttribute( id_transformation, id_step, \"schema\", schemaName );\n      rep.saveStepAttribute( id_transformation, id_step, \"table\", tableName );\n\n      rep.saveStepAttribute( id_transformation, id_step, \"load_method\", loadMethod );\n      rep.saveStepAttribute( id_transformation, id_step, \"load_action\", loadAction );\n      rep.saveStepAttribute( id_transformation, id_step, \"sqlldr\", sqlldr );\n      rep.saveStepAttribute( id_transformation, id_step, \"control_file\", controlFile );","sourceCodeStart":545,"sourceCodeEnd":581,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/oracle-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/orabulkloader/OraBulkLoaderMeta.java#L545-L581","documentation":"readRep() loads step settings from the repository; any Exception while reading step attributes is wrapped in a KettleException with OraBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository as message. It indicates the stored repository representation of the step could not be read (query failure, missing rows, repository API error).","triggerScenarios":"rep.getStepAttributeString/getStepAttributeNumber calls inside readRep throw — repository connection problems, schema mismatches, or corrupted step attribute rows for id_step.","commonSituations":"Repository database unavailable or credentials expired; r_step_attribute rows manually edited/deleted; upgrading Pentaho against an old repository schema; partial repository migration.","solutions":["Verify the repository connection (test the repository login in Spoon) and retry the load","Recreate or re-save the OraBulkLoader step so its attributes are rewritten","Check the repository schema version matches the Pentaho version (run the upgrade scripts)","Restore affected r_step_attribute rows from a repository backup"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// test repository access before loading step metadata\nrep.connect( \"user\", \"pass\" );\nif ( rep.getStepAttributeString( id_step, \"table\" ) == null ) {\n  // attributes missing — re-save the step from Spoon\n}","typeGuard":null,"tryCatchPattern":"try {\n  meta.readRep( rep, metaStore, id_step, databases );\n} catch ( KettleException e ) {\n  if ( e.getMessage().contains( \"UnexpectedErrorReadingStepInfoFromRepository\" ) ) {\n    // check repository connectivity and re-save the step\n  }\n}","preventionTips":["Keep repository schema in sync with the Pentaho version","Back up repository tables before migrations","Avoid manual edits to r_step_attribute rows"],"tags":["repository","database","metadata","kettle"],"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"}