pentaho/pentaho-kettle · error · KettleException

Unable to load Value from repository with id_value=

Error message

Unable to load Value from repository with id_value=

What it means

loadValueMetaAndData() reads a value (with its metadata) from the repository by id_value. Any KettleException encountered during that read is wrapped as KettleException('Unable to load Value from repository with id_value=<id>', cause). It indicates the value row could not be read or its metadata could not be reconstructed.

Solutions

  1. Inspect the wrapped cause for the actual SQL/parse error
  2. Verify the R_VALUE row for that id_value exists and matches the repository schema version
  3. Run repository upgrade/repair (repository connection 'Upgrade' option) if schema mismatch is suspected

Example fix

// before
RowMetaAndData v = repo.valueDelegate.loadValueMetaAndData(idValue);
// after
RowMetaAndData v;
try {
  v = repo.valueDelegate.loadValueMetaAndData(idValue);
} catch (KettleException e) {
  throw new KettleException("Value " + idValue + " missing/corrupt in repository: " + e.getCause().getMessage(), e);
}
Defensive patterns

Strategy: try-catch

Validate before calling

RowMetaAndData row = repository.connectionDelegate.getOneRow("R_VALUE", "ID_VALUE", id_value);
if (row == null) throw new KettleException("No R_VALUE row for id_value=" + id_value);

Try / catch

try { value = delegate.loadValueMetaAndData(id); } catch (KettleException e) { throw new KettleException("Corrupt/missing value id=" + id + ": " + e.getCause(), e); }

Prevention

When it happens

Trigger: Calling valueDelegate.loadValueMetaAndData(id_value) with an id that has no row in R_VALUE, or when ValueMetaFactory/createValueMeta or the underlying JDBC read throws.

Common situations: Corrupt or partially deleted repository rows (orphaned id_value references); transformation/repository schema mismatch after upgrade; pointing at the wrong repository database.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/6cee4cd4bf0ce7f3. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryValueDelegate.java:85

              valueMeta.setConversionMask( ValueMetaAndData.VALUE_REPOSITORY_INTEGER_CONVERSION_MASK );
              break;
            default:
              break;
          }

          String string = r.getString( "VALUE_STR", null );
          valueMetaAndData.setValueData( stringValueMeta.convertDataUsingConversionMetaData( string ) );

          // OK, now comes the dirty part...
          // We want the defaults back on there...
          //
          valueMeta = ValueMetaFactory.createValueMeta( name, valueMeta.getType() );
        }
      }

      return valueMetaAndData;
    } catch ( KettleException dbe ) {
      throw new KettleException( "Unable to load Value from repository with id_value=" + id_value, dbe );
    }
  }

}

View on GitHub (pinned to f3058517a1)