{"record":{"id":"023d5b4fcdc29c2c","repo":"pentaho/pentaho-kettle","slug":"columnexistsmeta-exception-unexpectederrorreadingstepinfo","errorCode":null,"errorMessage":"ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo","messagePattern":"ColumnExistsMeta\\.Exception\\.UnexpectedErrorReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/columnexists/ColumnExistsMeta.java","lineNumber":246,"sourceCode":"      resultfieldname = XMLHandler.getTagValue( stepnode, \"resultfieldname\" ); // Optional, can be null\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString( PKG, \"ColumnExistsMeta.Exception.UnableToReadStepInfo\" ),\n          e );\n    }\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )\n    throws KettleException {\n    try {\n      database = rep.loadDatabaseMetaFromStepAttribute( id_step, \"id_connection\", databases );\n      tablename = rep.getStepAttributeString( id_step, \"tablename\" );\n      schemaname = rep.getStepAttributeString( id_step, \"schemaname\" );\n      istablenameInfield = rep.getStepAttributeBoolean( id_step, \"istablenameInfield\" );\n      tablenamefield = rep.getStepAttributeString( id_step, \"tablenamefield\" );\n      columnnamefield = rep.getStepAttributeString( id_step, \"columnnamefield\" );\n      resultfieldname = rep.getStepAttributeString( id_step, \"resultfieldname\" );\n    } catch ( Exception e ) {\n      throw new KettleException(\n          BaseMessages.getString( PKG, \"ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo\" ), 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\", database );\n      rep.saveStepAttribute( id_transformation, id_step, \"tablename\", tablename );\n      rep.saveStepAttribute( id_transformation, id_step, \"schemaname\", schemaname );\n      rep.saveStepAttribute( id_transformation, id_step, \"istablenameInfield\", istablenameInfield );\n      rep.saveStepAttribute( id_transformation, id_step, \"tablenamefield\", tablenamefield );\n      rep.saveStepAttribute( id_transformation, id_step, \"columnnamefield\", columnnamefield );\n      rep.saveStepAttribute( id_transformation, id_step, \"resultfieldname\", resultfieldname );\n\n      // Also, save the step-database relationship!\n      if ( database != null ) {\n        rep.insertStepDatabase( id_transformation, id_step, database.getObjectId() );","sourceCodeStart":228,"sourceCodeEnd":264,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/columnexists/ColumnExistsMeta.java#L228-L264","documentation":"Outer catch-all in ColumnExistsMeta.readRep: an unexpected exception occurred while loading the step's attributes (connection, tablename, schema, result field) from the repository. The cause is chained for diagnosis.","triggerScenarios":"Repository calls (rep.getStepAttributeString/getStepAttributeBoolean) throw during readRep for a ColumnExists step — typically repository connectivity or schema problems.","commonSituations":"Database repository down or network cut; repository tables missing/old schema after a PDI upgrade; invalid id_step referencing deleted rows.","solutions":["Verify the repository database connection is up and reachable","Run the repository upgrade script matching your PDI version","Inspect the nested cause (e) for the actual repository error"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Verify repository connectivity before loading step metadata\nif (!rep.connect(null) || !rep.getConnection().isConnected()) {\n  throw new IllegalStateException(\"Repository unavailable\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  meta.readRep(rep, metaStore, idStep, databases);\n} catch (KettleException e) {\n  log.error(\"Repository read failed for step \" + idStep + \": \" + e.getCause(), e);\n}","preventionTips":["Run the repository upgrade scripts after PDI upgrades","Monitor repository DB health","Back up the repository before schema changes"],"tags":["kettle","pdi","repository","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"}