{"record":{"id":"2c138c790d3c3450","repo":"pentaho/pentaho-kettle","slug":"syslogmessagemeta-exception-unabletoreadstepinfo","errorCode":null,"errorMessage":"SyslogMessageMeta.Exception.UnableToReadStepInfo","messagePattern":"SyslogMessageMeta\\.Exception\\.UnableToReadStepInfo","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/syslog/SyslogMessageMeta.java","lineNumber":238,"sourceCode":"    retval.append( \"    \" + XMLHandler.addTagValue( \"datePattern\", datePattern ) );\n    retval.append( \"    \" + XMLHandler.addTagValue( \"addHostName\", addHostName ) );\n\n    return retval.toString();\n  }\n\n  private void readData( Node stepnode, List<DatabaseMeta> databases ) throws KettleXMLException {\n    try {\n      messagefieldname = XMLHandler.getTagValue( stepnode, \"messagefieldname\" );\n      port = XMLHandler.getTagValue( stepnode, \"port\" );\n      serverName = XMLHandler.getTagValue( stepnode, \"servername\" );\n      facility = XMLHandler.getTagValue( stepnode, \"facility\" );\n      priority = XMLHandler.getTagValue( stepnode, \"priority\" );\n      datePattern = XMLHandler.getTagValue( stepnode, \"datePattern\" );\n      addTimestamp = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( stepnode, \"addTimestamp\" ) );\n      addHostName = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( stepnode, \"addHostName\" ) );\n\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"SyslogMessageMeta.Exception.UnableToReadStepInfo\" ), e );\n    }\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n\n    try {\n      messagefieldname = rep.getStepAttributeString( id_step, \"messagefieldname\" );\n      serverName = rep.getJobEntryAttributeString( id_step, \"servername\" );\n      port = rep.getJobEntryAttributeString( id_step, \"port\" );\n      facility = rep.getJobEntryAttributeString( id_step, \"facility\" );\n      priority = rep.getJobEntryAttributeString( id_step, \"priority\" );\n      datePattern = rep.getJobEntryAttributeString( id_step, \"datePattern\" );\n      addTimestamp = rep.getJobEntryAttributeBoolean( id_step, \"addTimestamp\" );\n      addHostName = rep.getJobEntryAttributeBoolean( id_step, \"addHostName\" );\n\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(","sourceCodeStart":220,"sourceCodeEnd":256,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/syslog/SyslogMessageMeta.java#L220-L256","documentation":"Thrown by SyslogMessageMeta.readData (called from loadXML) when parsing the step's XML node fails — any exception during XMLHandler.getTagValue extraction is wrapped in a KettleXMLException with this message.","triggerScenarios":"Loading a transformation whose <step> XML for Syslog Message is malformed or missing expected tags; XMLHandler throwing on bad structure/attributes.","commonSituations":"Hand-edited transformation files; partial/corrupted .ktr export; version mismatch where XML schema changed; truncated file transfer.","solutions":["Validate and repair the .ktr XML around the syslog step node","Re-export the transformation from Spoon rather than hand-editing","Compare with a working transformation's XML for the expected tags (priority, datePattern, addTimestamp, addHostName)","Load the step from the repository instead using readRep"],"exampleFix":"// before\n// hand-edited XML: <priority> missing attribute\n// after\n// re-export from Spoon: <priorityType>Warning</priorityType><datePattern>MMM d HH:mm:ss</datePattern>...","handlingStrategy":"try-catch","validationCode":"Document doc = XMLHandler.loadXMLFile(new InputSource(stream)); // validate XML parses before loading meta\nif (doc == null) throw new KettleXMLException(\"Malformed transformation XML\");","typeGuard":null,"tryCatchPattern":"try { meta.loadXML(stepNode, databases, metaStore); } catch (KettleXMLException e) { logError(\"Syslog step XML unreadable: \" + e.getCause(), e); }","preventionTips":["Never hand-edit .ktr files; edit via Spoon","Keep Pentaho versions consistent across environments","Keep transformation file backups before edits"],"tags":["kettle","xml","metadata","deserialization"],"backgroundTag":"xml-parse-error","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"}