pentaho/pentaho-kettle · error · SyslogException
JobEntrySyslog.UnknownPriotity
Error message
JobEntrySyslog.UnknownPriotity
What it means
SyslogDefs.getPriority looks up the priority string in the static priHash map of valid syslog priorities (e.g. emerg, alert, crit, err, warning, notice, info, debug). An unknown key yields null and a SyslogException with the localized 'JobEntrySyslog.UnknownPriotity' message including the offending value.
Solutions
- Use an exact key from SyslogDefs.priHash: emerg, alert, crit, err, warning, notice, info, debug (lowercase)
- If priority comes from a variable, verify it resolves to one of those exact lowercase names
- Log/print environmentSubstitute(getPriority()) before execution to see the actual value
- Normalize input: value = value.toLowerCase().trim() before passing to the entry
Example fix
// before: throws SyslogException
jobEntry.setPriority("Critical");
// after
jobEntry.setPriority("crit"); // exact lowercase key from SyslogDefs.priHash Defensive patterns
Strategy: validation
Validate before calling
// Java: whitelist-check priority against SyslogDefs keys before execute
java.util.Set<String> valid = new java.util.HashSet<>(java.util.Arrays.asList(
"emerg","alert","crit","err","warning","notice","info","debug"));
String p = jobEntry.environmentSubstitute(jobEntry.getPriority());
if (p == null || !valid.contains(p.trim().toLowerCase())) {
throw new IllegalArgumentException("Unknown syslog priority: " + p);
} Try / catch
try {
jobEntry.execute(result, executionOffset);
} catch (SyslogException e) {
if (e.getMessage().contains("UnknownPriotity")) {
logError("Fix priority to one of: emerg..debug (lowercase)");
}
} Prevention
- Use exact lowercase priority names from SyslogDefs.priHash
- Lowercase/trim variables feeding the priority field
- Avoid localized UI labels in configuration files
- Log the resolved variable value during job design
When it happens
Trigger: JobEntrySyslog.execute calls SyslogDefs.getPriority(priority) with a priority string that is not a key of priHash — typically a misspelled priority or one set via a variable that resolved to garbage.
Common situations: Typo like 'Warnings' or 'critical' (case differs: map keys are lowercase); variable ${PRIORITY} unresolved or set to a numeric severity (0-7) instead of the symbolic name; locale-translated label pasted from a non-English UI.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- JobEntrySyslog.UnknownFacility
- JobEntrySyslog.DatePatternEmpty
- Bounds of this rule are not numeric: lowerBound=
- Calculator.Log.UnknownCalculationType + fn.getCalcType()
- CheckSum.Error.UnknownChecksumType
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/4b2a8bba5b6660dd.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/syslog/SyslogDefs.java:92
priHash.put( "EMERGENCY", SyslogConstants.LEVEL_EMERGENCY );
priHash.put( "ALERT", SyslogConstants.LEVEL_ALERT );
priHash.put( "CRITICAL", SyslogConstants.LEVEL_CRITICAL );
priHash.put( "ERROR", SyslogConstants.LEVEL_ERROR );
priHash.put( "WARNING", SyslogConstants.LEVEL_WARN );
priHash.put( "NOTICE", SyslogConstants.LEVEL_NOTICE );
priHash.put( "INFO", SyslogConstants.LEVEL_INFO );
priHash.put( "DEBUG", SyslogConstants.LEVEL_DEBUG );
}
public static int computeCode( int facility, int priority ) {
return ( ( facility << 3 ) | priority );
}
public static int getPriority( String priority ) throws SyslogException {
Integer result = SyslogDefs.priHash.get( priority );
if ( result == null ) {
throw new SyslogException( BaseMessages.getString( PKG, "JobEntrySyslog.UnknownPriotity", priority ) );
}
return result.intValue();
}
public static int getFacility( String facility ) throws SyslogException {
Integer result = SyslogDefs.facHash.get( facility );
if ( result == null ) {
throw new SyslogException( BaseMessages.getString( PKG, "JobEntrySyslog.UnknownFacility", facility ) );
}
return result.intValue();
}
public static void sendMessage( SyslogIF syslog, int priority, String message, boolean addTimestamp,
String pattern, boolean addHostName ) {
String messageString = message;View on GitHub (pinned to f3058517a1)