pentaho/pentaho-kettle · error · KettleException
Unable to write log channel in transformation information…
Error message
Unable to write log channel in transformation information to log table!
What it means
Thrown by writeLogChannelInformation when any Exception occurs while persisting channel log records (and cleaning up timed-out records) for the channel log table. The message is borrowed from the Trans message key but thrown in the Job class; the original exception is chained.
Solutions
- Inspect the chained cause for the root SQL/IO failure
- Create/repair the channel log table with the generated DDL
- Verify the logging database connection configuration
- Re-run after confirming DB availability; consider periodic cleanup to keep the table small
Defensive patterns
Strategy: try-catch
Validate before calling
try (Connection c = db.connect()) {
ResultSet rs = c.getMetaData().getTables(null, null, channelLogTable.getTableName(), null);
if (!rs.next()) throw new IllegalStateException("Channel log table missing: " + channelLogTable.getTableName());
} Try / catch
try {
job.run();
} catch (KettleException e) {
if (e.getMessage().contains("Unable to write log channel")) {
log.error("Channel log persistence failed", e.getCause());
}
} Prevention
- Create channel log tables from Kettle-generated DDL
- Confirm the logging connection config before job execution
- Schedule cleanupLogRecords regularly to prevent table bloat
When it happens
Trigger: Any failure during channel log writes or db.cleanupLogRecords(channelLogTable, ...) — bad connection, missing table, SQL error, or unexpected exception in the write path.
Common situations: Channel log table not created; wrong logging DB configured; Kettle version mismatch between client and log table DDL; transient DB outages during job run.
Related errors
- Unable to perform logging at transformation end!
- Conversion error after getting last logdate from
- There was an unexpected error while logging job entry…
- Trans.Exception.ConnectionCouldNotBeFound
- Trans.Exception.ErrorCalculatingDateRange
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/15dc9ab3f46ba4cb.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/Job.java:1264
// end PDI-7070
try {
db = new Database( this, channelLogTable.getDatabaseMeta() );
db.shareVariablesWith( this );
db.connect();
db.setCommit( logCommitSize );
List<LoggingHierarchy> loggingHierarchyList = getLoggingHierarchy();
for ( LoggingHierarchy loggingHierarchy : loggingHierarchyList ) {
db.writeLogRecord( channelLogTable, LogStatus.START, loggingHierarchy, null );
}
// Also time-out the log records in here...
//
db.cleanupLogRecords( channelLogTable, getJobname() );
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString( PKG,
"Trans.Exception.UnableToWriteLogChannelInformationToLogTable" ), e );
} finally {
if ( !db.isAutoCommit() ) {
db.commit( true );
}
db.close();
}
}
/**
* Write job entry log information.
*
* @throws KettleException
* the kettle exception
*/
protected void writeJobEntryLogInformation() throws KettleException {
Database db = null;
JobEntryLogTable jobEntryLogTable = getJobMeta().getJobEntryLogTable();View on GitHub (pinned to f3058517a1)