{"record":{"id":"b2c27868a3a67c9d","repo":"pentaho/pentaho-kettle","slug":"appendmeta-exception-unexpectederrorreadingstepinfo","errorCode":null,"errorMessage":"AppendMeta.Exception.UnexpectedErrorReadingStepInfo","messagePattern":"AppendMeta\\.Exception\\.UnexpectedErrorReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/append/AppendMeta.java","lineNumber":115,"sourceCode":"      headStream.setSubject( XMLHandler.getTagValue( stepnode, \"head_name\" ) );\n      tailStream.setSubject( XMLHandler.getTagValue( stepnode, \"tail_name\" ) );\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString( PKG, \"AppendMeta.Exception.UnableToLoadStepInfo\" ), e );\n    }\n  }\n\n  public void setDefault() {\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();\n      StreamInterface headStream = infoStreams.get( 0 );\n      StreamInterface tailStream = infoStreams.get( 1 );\n      headStream.setSubject( rep.getStepAttributeString( id_step, \"head_name\" ) );\n      tailStream.setSubject( rep.getStepAttributeString( id_step, \"tail_name\" ) );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"AppendMeta.Exception.UnexpectedErrorReadingStepInfo\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();\n      StreamInterface headStream = infoStreams.get( 0 );\n      StreamInterface tailStream = infoStreams.get( 1 );\n      rep.saveStepAttribute( id_transformation, id_step, \"head_name\", headStream.getStepname() );\n      rep.saveStepAttribute( id_transformation, id_step, \"tail_name\", tailStream.getStepname() );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"AppendMeta.Exception.UnableToSaveStepInfo\" )\n        + id_step, e );\n    }\n  }\n\n  @Override","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/append/AppendMeta.java#L97-L133","documentation":"AppendMeta.readRep throws KettleException wrapping 'AppendMeta.Exception.UnexpectedErrorReadingStepInfo' when reading the Append step's head_name/tail_name attributes from the repository fails. Any exception from rep.getStepAttributeString or the stream lookup is wrapped. It means the step definition could not be loaded from the database repository.","triggerScenarios":"Loading a transformation from a Kettle repository where r_step_attribute rows are unreadable, the id_step is stale, or the repository connection breaks during getStepAttributeString calls.","commonSituations":"Corrupt or partially migrated repository database; repository schema version mismatch with the Kettle client; transient DB connectivity loss while opening a transformation.","solutions":["Verify repository database connectivity and retry opening the transformation.","Check r_step_attribute rows for the step's id_step; re-save the transformation from Spoon.","Confirm the repository schema matches your Pentaho version (run repository upgrade scripts).","Export the transformation to XML and reload if repository records are corrupt."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Before loading: verify repository connectivity\nif (rep == null || !rep.isConnected()) {\n  throw new IllegalStateException(\"Repository not connected before loadTransformLog\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  TransMeta meta = new TransMeta(rep, transObjectId, metaStore);\n} catch (KettleException e) {\n  logError(\"Repository read of transformation failed: \" + e.getMessage(), e);\n  // retry after reconnecting the repository\n}","preventionTips":["Reconnect the repository after long-running sessions.","Run repository upgrade scripts after Pentaho version upgrades.","Back up the repository database regularly."],"tags":["kettle","repository","metadata-load","database"],"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"}