{"record":{"id":"cf2c58c7636cde2a","repo":"pentaho/pentaho-kettle","slug":"combinationlookupmeta-exception","errorCode":null,"errorMessage":"CombinationLookupMeta.Exception.UnexpectedErrorWhileReadingStepInfo","messagePattern":"CombinationLookupMeta\\.Exception\\.UnexpectedErrorWhileReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/combinationlookup/CombinationLookupMeta.java","lineNumber":565,"sourceCode":"      useHash = rep.getStepAttributeBoolean( id_step, \"crc\" );\n      hashField = rep.getStepAttributeString( id_step, \"crcfield\" );\n\n      int nrkeys = rep.countNrStepAttributes( id_step, \"lookup_key_name\" );\n\n      allocate( nrkeys );\n\n      for ( int i = 0; i < nrkeys; i++ ) {\n        keyField[ i ] = rep.getStepAttributeString( id_step, i, \"lookup_key_name\" );\n        keyLookup[ i ] = rep.getStepAttributeString( id_step, i, \"lookup_key_field\" );\n      }\n\n      technicalKeyField = rep.getStepAttributeString( id_step, \"return_name\" );\n      useAutoinc = rep.getStepAttributeBoolean( id_step, \"use_autoinc\" );\n      sequenceFrom = rep.getStepAttributeString( id_step, \"sequence\" );\n      techKeyCreation = rep.getStepAttributeString( id_step, \"creation_method\" );\n      lastUpdateField = rep.getStepAttributeString( id_step, \"last_update_field\" );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"CombinationLookupMeta.Exception.UnexpectedErrorWhileReadingStepInfo\" ), e );\n    }\n  }\n\n  @Override\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, \"schema\", schemaName );\n      rep.saveStepAttribute( id_transformation, id_step, \"table\", tablename );\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, \"cache_size\", cacheSize );\n      rep.saveStepAttribute( id_transformation, id_step, \"replace\", replaceFields );\n      rep.saveStepAttribute( id_transformation, id_step, \"preloadCache\", preloadCache );\n\n      rep.saveStepAttribute( id_transformation, id_step, \"crc\", useHash );\n      rep.saveStepAttribute( id_transformation, id_step, \"crcfield\", hashField );","sourceCodeStart":547,"sourceCodeEnd":583,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/combinationlookup/CombinationLookupMeta.java#L547-L583","documentation":"Generic KettleException thrown by CombinationLookupMeta.readRep when reading the step's configuration from the repository (database-backed metadata) fails. The wrapped cause is the repository/SQL error; the localized message means 'Unexpected error while reading step info from the repository'.","triggerScenarios":"readRep (invoked when a transformation is loaded from a repository) throws while calling rep.getStepAttributeString/getStepAttributeBoolean for attributes like return_name, use_autoinc, sequence, creation_method, last_update_field.","commonSituations":"Repository database unreachable or schema out of sync after a PDI upgrade (missing r_step_attribute rows/columns); corrupted repository rows; permission problems on the repository tables.","solutions":["Check the wrapped cause for the repository SQL/connection error and fix repository connectivity or permissions.","Run the repository upgrade scripts matching your PDI version so the attribute schema is current.","Open the transformation from a file export instead of the repository to isolate the bad step, then re-save it.","Restore/rebuild the affected step metadata in the repository."],"exampleFix":"// no code fix; operational remedy:\n// apply repository DDL upgrade, e.g. run\n//   sql/upgrade/<version>/<dbtype>/upgrade_r_step_attribute.sql\n// then reconnect and reopen the transformation.","handlingStrategy":"try-catch","validationCode":"// pre-check repository health before loading\n// Repository.connect(\"user\", \"pass\");\n// rep.getStepAttributeBoolean(id_step, \"use_autoinc\"); // smoke-test attribute access","typeGuard":null,"tryCatchPattern":"try {\n  transMeta = repository.loadTransformation(objectId, null);\n} catch (KettleException e) {\n  log.error(\"Repository read of step failed: \" + e.getCause(), e);\n}","preventionTips":["Keep repository schema in sync with the PDI version (run upgrade scripts).","Monitor repository database connectivity and permissions.","Export transformations to file as a recovery path.","Back up the repository before upgrades."],"tags":["repository","metadata-load","database","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"}