pentaho/pentaho-kettle · error · KettleException
Unable to save job entry of type 'Telnet' to the repository…
Error message
Unable to save job entry of type 'Telnet' to the repository for id_job=
What it means
Thrown by JobEntryTelnet.saveRep when writing the Telnet entry's attributes (hostname, port, timeout) to the repository fails with a KettleDatabaseException. It means the repository rejected the attribute write for this job entry. The underlying database exception is attached as the cause.
Solutions
- Verify the repository database is reachable and writable
- Check the wrapped KettleDatabaseException for the specific SQL failure
- Confirm attribute values (especially port/timeout) fit the repository column sizes
- Retry the save after resolving locks or permission issues
Defensive patterns
Strategy: try-catch
Validate before calling
if ( rep == null || !rep.isConnected() ) { throw new IllegalStateException( "Repository unavailable" ); } Try / catch
try { entry.saveRep( rep, metaStore, id_job ); } catch ( KettleException e ) { log.error( "Failed saving Telnet entry for job " + id_job, e.getCause() ); throw e; } Prevention
- Keep attribute values within repository column limits
- Use writable repository credentials
- Avoid concurrent saves to the same job
- Repair repository tables if saves repeatedly fail
When it happens
Trigger: Calling saveRep for a Telnet job entry when the repository database is unavailable, the attribute table is locked/corrupt, or a constraint is violated while saving hostname/port/timeout values.
Common situations: Database repository connection dropped during save; oversized hostname/port values exceeding column widths; read-only database user; concurrent save conflicts in clustered setups.
Related errors
- AccessInputMeta.Exception.ErrorReadingRepository
- AddSequenceMeta.Exception.UnableToReadStepInfo
- AggregateRowsMeta.Exception.UnexpectedErrorWhileReadingStepInfo
- AnalyticQueryMeta.Exception.UnexpectedErrorInReadingStepInfo…
- AppendMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/2db144157a6bb438.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/telnet/JobEntryTelnet.java:122
List<SlaveServer> slaveServers ) throws KettleException {
try {
hostname = rep.getJobEntryAttributeString( id_jobentry, "hostname" );
port = rep.getJobEntryAttributeString( id_jobentry, "port" );
timeout = rep.getJobEntryAttributeString( id_jobentry, "timeout" );
} catch ( KettleException dbe ) {
throw new KettleException(
"Unable to load job entry of type 'Telnet' exists from the repository for id_jobentry=" + id_jobentry,
dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "hostname", hostname );
rep.saveJobEntryAttribute( id_job, getObjectId(), "port", port );
rep.saveJobEntryAttribute( id_job, getObjectId(), "timeout", timeout );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to save job entry of type 'Telnet' to the repository for id_job="
+ id_job, dbe );
}
}
public String getPort() {
return port;
}
public String getRealPort() {
return environmentSubstitute( getPort() );
}
public void setPort( String port ) {
this.port = port;
}
public void setHostname( String hostname ) {
this.hostname = hostname;View on GitHub (pinned to f3058517a1)