{"record":{"id":"ebeb718771e3f7f9","repo":"pentaho/pentaho-kettle","slug":"transmeta-exception-ebeb71","errorCode":null,"errorMessage":"TransMeta.Exception.UnableToLoadTransformationInfoFromRepository","messagePattern":"TransMeta\\.Exception\\.UnableToLoadTransformationInfoFromRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryTransDelegate.java","lineNumber":802,"sourceCode":"          getTransAttributeString(\n            transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_STEP_PERFORMANCE_LOG_TABLE ) );\n        transMeta.getTransLogTable().setLogSizeLimit(\n          getTransAttributeString(\n            transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_LOG_SIZE_LIMIT ) );\n        transMeta.getTransLogTable().setLogInterval(\n          getTransAttributeString(\n            transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_LOG_INTERVAL ) );\n        transMeta.setTransformationType( TransformationType.getTransformationTypeByCode( getTransAttributeString(\n          transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_TRANSFORMATION_TYPE ) ) );\n        transMeta.setSleepTimeEmpty( (int) getTransAttributeInteger(\n          transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_SLEEP_TIME_EMPTY ) );\n        transMeta.setSleepTimeFull( (int) getTransAttributeInteger(\n          transMeta.getObjectId(), 0, KettleDatabaseRepository.TRANS_ATTRIBUTE_SLEEP_TIME_FULL ) );\n\n        loadRepParameters( transMeta );\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"TransMeta.Exception.UnableToLoadTransformationInfoFromRepository\" ), dbe );\n    } finally {\n      transMeta.initializeVariablesFrom( null );\n      transMeta.setInternalKettleVariables();\n    }\n  }\n\n  /**\n   * Load the parameters of this transformation from the repository. The current ones already loaded will be erased.\n   *\n   * @throws KettleException\n   *           Upon any error.\n   */\n  private void loadRepParameters( TransMeta transMeta ) throws KettleException {\n    transMeta.eraseParameters();\n\n    int count = countTransParameter( transMeta.getObjectId() );\n    for ( int idx = 0; idx < count; idx++ ) {","sourceCodeStart":784,"sourceCodeEnd":820,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryTransDelegate.java#L784-L820","documentation":"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.","triggerScenarios":"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.","commonSituations":"Repository connection lost mid-load; R_TRANS_ATTRIBUTE table missing/inaccessible after partial repository creation; stale ObjectId pointing at rows deleted by another session.","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."],"exampleFix":"// before\nrepository.loadTransformation(transMeta, directory, monitor, true, false);\n// after\ntry {\n  repository.loadTransformation(transMeta, directory, monitor, true, false);\n} catch (KettleException e) {\n  log.logError(\"Attribute load failed: \" + e.getCause(), e);\n  throw e;\n}","handlingStrategy":"try-catch","validationCode":"if (!repository.isConnected()) { repository.connect(user, password); }\n// ensure attribute table is readable\nrepository.connectionDelegate.closeAttributeLookupPreparedStatements();","typeGuard":null,"tryCatchPattern":"try { repository.loadTransformation(transMeta, dir, monitor, true, false); } catch (KettleException e) { if (e.getCause() instanceof KettleDatabaseException) { /* attribute read failed — reconnect and retry */ } throw e; }","preventionTips":["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"],"tags":["repository","database-read","attributes","transformation-load"],"backgroundTag":"database-query-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}