pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'trans' from the…
Error message
Unable to load job entry of type 'trans' from the repository for id_jobentry=
What it means
Thrown by JobEntryTrans.loadRep when reading a Transformation job entry's attributes from the repository fails with a KettleDatabaseException. It means repository attribute reads for this id_jobentry (transformation name, parameters, pass_all_parameters flag, etc.) failed. The database error is preserved as the cause.
Solutions
- Verify repository connectivity and retry loading the job
- Confirm R_JOBENTRY_ATTRIBUTE rows exist for the given id_jobentry
- Run repository schema repair/upgrade tools to match the runtime version
- Check the wrapped KettleDatabaseException cause for the underlying SQL error
Defensive patterns
Strategy: try-catch
Validate before calling
if ( rep == null || !rep.isConnected() ) { throw new IllegalStateException( "Repository unavailable" ); } Try / catch
try { entry.loadRep( rep, metaStore, id_jobentry, databases, slaveServers ); } catch ( KettleException e ) { log.error( "Failed loading trans entry " + id_jobentry, e.getCause() ); throw e; } Prevention
- Confirm attribute rows exist for the entry id
- Keep repository schema in sync with runtime version
- Use SELECT-capable DB credentials
- Retry loads on transient DB outages
When it happens
Trigger: Calling loadRep when the repository connection fails mid-read, the job entry's attribute rows are missing, or the database raises an error while fetching parameters or the 'pass_all_parameters' boolean.
Common situations: Repository schema drift after Pentaho upgrades; entries referencing deleted transformation rows; transient DB outages during job load; permission loss on repository tables.
Understand the failure class
Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.
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/aa158a6fa3d46ed9.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/trans/JobEntryTrans.java:527
for ( int a = 0; a < argnr; a++ ) {
arguments[ a ] = rep.getJobEntryAttributeString( id_jobentry, a, "argument" );
}
// How many arguments?
int parameternr = rep.countNrJobEntryAttributes( id_jobentry, "parameter_name" );
allocateParams( parameternr );
// Read all parameters ...
for ( int a = 0; a < parameternr; a++ ) {
parameters[ a ] = rep.getJobEntryAttributeString( id_jobentry, a, "parameter_name" );
parameterFieldNames[ a ] = rep.getJobEntryAttributeString( id_jobentry, a, "parameter_stream_name" );
parameterValues[ a ] = rep.getJobEntryAttributeString( id_jobentry, a, "parameter_value" );
}
passingAllParameters = rep.getJobEntryAttributeBoolean( id_jobentry, "pass_all_parameters", true );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to load job entry of type 'trans' from the repository for id_jobentry="
+ id_jobentry, dbe );
}
}
// Save the attributes of this job entry
//
@Override
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "specification_method", specificationMethod == null
? null : specificationMethod.getCode() );
rep.saveJobEntryAttribute( id_job, getObjectId(), "trans_object_id", transObjectId == null
? null : transObjectId.toString() );
rep.saveJobEntryAttribute( id_job, getObjectId(), "name", getTransname() );
rep.saveJobEntryAttribute( id_job, getObjectId(), "dir_path", getDirectory() != null ? getDirectory() : "" );
rep.saveJobEntryAttribute( id_job, getObjectId(), "file_name", filename );
rep.saveJobEntryAttribute( id_job, getObjectId(), "arg_from_previous", argFromPrevious );
rep.saveJobEntryAttribute( id_job, getObjectId(), "params_from_previous", paramsFromPrevious );View on GitHub (pinned to f3058517a1)