pentaho/pentaho-kettle · error · KettleException
TransMeta.Exception.UnableToLoadTransformationInfoFromReposi…
Error message
TransMeta.Exception.UnableToLoadTransformationInfoFromRepository
What it means
Thrown by loadRepTrans (invoked from loadTransformation to read transformation-level attributes such as log settings, size rowset, sleep times, and parameters) when a KettleDatabaseException occurs while reading those attributes. Wrapped as KettleException with the cause; the variables are still initialized in the finally block but attribute loading failed.
Solutions
- Inspect the wrapped KettleDatabaseException cause for the failing attribute query.
- Verify the R_TRANS_ATTRIBUTE table exists and the DB user can SELECT from it.
- Reload the transformation with a freshly found ObjectId (re-run findByObjectId) in case the id is stale.
- Restore repository connectivity and retry.
Example fix
// before
repository.loadTransformation(transMeta, directory, monitor, true, false);
// after
try {
repository.loadTransformation(transMeta, directory, monitor, true, false);
} catch (KettleException e) {
log.logError("Attribute load failed: " + e.getCause(), e);
throw e;
} Defensive patterns
Strategy: try-catch
Validate before calling
if (!repository.isConnected()) { repository.connect(user, password); }
// ensure attribute table is readable
repository.connectionDelegate.closeAttributeLookupPreparedStatements(); Try / catch
try { repository.loadTransformation(transMeta, dir, monitor, true, false); } catch (KettleException e) { if (e.getCause() instanceof KettleDatabaseException) { /* attribute read failed — reconnect and retry */ } throw e; } Prevention
- Verify R_TRANS_ATTRIBUTE table exists and is accessible
- Re-resolve ObjectIds freshly before loading
- Reconnect after long idle sessions
- Inspect the wrapped KettleDatabaseException for the failing attribute query
When it happens
Trigger: KettleDatabaseException from getTransAttributeString/Boolean/Integer lookups (e.g. TRANS_ATTRIBUTE_ID, SLEEP_TIME attributes) or loadRepParameters, typically because the attribute lookup queries hit a DB error or the object id is stale.
Common situations: Repository connection lost mid-load; R_TRANS_ATTRIBUTE table missing/inaccessible after partial repository creation; stale ObjectId pointing at rows deleted by another session.
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
- TransMeta.Exception.DatabaseErrorOccuredReadingTransformatio…
- StepMeta.Exception.StepCouldNotBeLoaded
- Trans.Exception.UnableToLoadTransformation
- TransMeta.Exception.DatabaseErrorOccuredReadingTransformatio…
- TransMeta.Exception.TransformationDoesNotExist
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/ebeb718771e3f7f9.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryTransDelegate.java:802
getTransAttributeString(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_STEP_PERFORMANCE_LOG_TABLE ) );
transMeta.getTransLogTable().setLogSizeLimit(
getTransAttributeString(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_LOG_SIZE_LIMIT ) );
transMeta.getTransLogTable().setLogInterval(
getTransAttributeString(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_LOG_INTERVAL ) );
transMeta.setTransformationType( TransformationType.getTransformationTypeByCode( getTransAttributeString(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_TRANSFORMATION_TYPE ) ) );
transMeta.setSleepTimeEmpty( (int) getTransAttributeInteger(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_SLEEP_TIME_EMPTY ) );
transMeta.setSleepTimeFull( (int) getTransAttributeInteger(
transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_SLEEP_TIME_FULL ) );
loadRepParameters( transMeta );
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString(
PKG, "TransMeta.Exception.UnableToLoadTransformationInfoFromRepository" ), dbe );
} finally {
transMeta.initializeVariablesFrom( null );
transMeta.setInternalKettleVariables();
}
}
/**
* Load the parameters of this transformation from the repository. The current ones already loaded will be erased.
*
* @throws KettleException
* Upon any error.
*/
private void loadRepParameters( TransMeta transMeta ) throws KettleException {
transMeta.eraseParameters();
int count = countTransParameter( transMeta.getObjectId() );
for ( int idx = 0; idx < count; idx++ ) {View on GitHub (pinned to f3058517a1)