pentaho/pentaho-kettle · error · KettleException
Unable to load partition schema from the file repository
Error message
Unable to load partition schema from the file repository
What it means
loadPartitionSchema(id, versionName) builds a PartitionSchema from the XML node returned by loadNodeFromXML(id, PartitionSchema.XML_TAG); failures loading or parsing the node are wrapped into this fixed-message KettleException with the original exception as cause.
Solutions
- Check the partition schema file exists in the repository folder for that id
- Recreate the partition schema in Spoon and save it
- Inspect getCause() for the concrete load or parse error
- Validate transformation metadata references point to existing schema ids
Defensive patterns
Strategy: try-catch
Validate before calling
if (id_partition_schema == null) throw new KettleException("No partition schema id referenced"); Try / catch
try {
PartitionSchema ps = repository.loadPartitionSchema(id, null);
} catch (KettleException e) {
logger.error("Partition schema load failed: " + e.getCause(), e);
throw new KettleException("Partition schema missing or corrupt; recreate it in Spoon", e);
} Prevention
- Verify schema files ship with the repository when migrating environments
- Do not delete partition schemas still referenced by transformations
- Validate repository XML after merges or manual operations
When it happens
Trigger: Calling loadPartitionSchema when the partition schema file for the id is missing/unreadable or its XML is not a valid <partition_schema> node accepted by the PartitionSchema constructor.
Common situations: Partition schema referenced by a transformation but deleted from the repository; corrupted XML after a failed save; cluster/market setup where schema files were not copied to the repository location.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- Unable to load cluster schema from the file repository
- Unable to load database connection from the file repository
- AddSequenceMeta.Exception.ErrorLoadingStepInfo
- AggregateRowsMeta.Exception.UnableToLoadStepInfo
- AnalyticQueryMeta.Exception.UnableToLoadStepInfoFromXML
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/17b712425d8d9585.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/repository/filerep/KettleFileRepository.java:960
jobMeta.setFilename( null );
jobMeta.setName( jobname );
jobMeta.setObjectId( new StringObjectId( calcObjectId( repdir, jobname, EXT_JOB ) ) );
jobMeta.setRepository( this );
jobMeta.setMetaStore( MetaStoreConst.getDefaultMetastore() );
jobMeta.clearChanged();
return jobMeta;
}
@Override
public PartitionSchema loadPartitionSchema( ObjectId id_partition_schema, String versionName ) throws KettleException {
try {
return new PartitionSchema( loadNodeFromXML( id_partition_schema, PartitionSchema.XML_TAG ) );
} catch ( Exception e ) {
throw new KettleException( "Unable to load partition schema from the file repository", e );
}
}
@Override
public RepositoryDirectoryInterface loadRepositoryDirectoryTree() throws KettleException {
RepositoryDirectory root = new RepositoryDirectory();
root.setObjectId( new StringObjectId( "/" ) );
return loadRepositoryDirectoryTree( root );
}
public RepositoryDirectoryInterface loadRepositoryDirectoryTree( RepositoryDirectoryInterface dir ) throws KettleException {
try {
String folderName = calcDirectoryName( dir );
FileObject folder = KettleVFS.getInstance( DefaultBowl.getInstance() ).getFileObject( folderName );
for ( FileObject child : folder.getChildren() ) {
if ( child.getType().equals( FileType.FOLDER ) ) {
if ( !child.isHidden() || !repositoryMeta.isHidingHiddenFiles() ) {View on GitHub (pinned to f3058517a1)