pentaho/pentaho-kettle · error · KettleException
Unable to get all partition schema names
Error message
Unable to get all partition schema names
What it means
PurRepository.getPartitionSchemaNames() lists partition-schema files in the Pentaho Enterprise Repository and wraps any failure (children lookup, title read) in this KettleException. It is a wrapper over the underlying pur/JCR service exception, so the real cause is always in the attached cause.
Solutions
- Log/print e.getCause() to find the real failure (connection, permission, or missing folder).
- Reconnect/re-authenticate to the repository (repository.connect) and retry the listing.
- Verify the directory id exists via getDirectory(idDirectory) before listing.
- Check Pentaho server availability and user permissions for the folder.
Example fix
// before
String[] names = repo.getPartitionSchemaNames(dirId, false);
// after
try {
String[] names = repo.getPartitionSchemaNames(dirId, false);
} catch (KettleException e) {
log.error("partition schema listing failed: " + e.getCause(), e);
repo.disconnect(); repo.connect(user, pass); // reconnect then retry
} Defensive patterns
Strategy: try-catch
Validate before calling
if (repo == null || !repo.isConnected()) throw new IllegalStateException("connect to repository first");
if (dirId == null) throw new IllegalArgumentException("dirId required"); Type guard
boolean usable(Repository repo) { try { return repo != null && repo.isConnected(); } catch (Throwable t) { return false; } } Try / catch
try { return repo.getPartitionSchemaNames(dirId, false); } catch (KettleException e) { log.error("cause: ", e.getCause()); return new String[0]; } Prevention
- Always connect before repository calls
- Log getCause(), not just the wrapper message
- Re-resolve directory ids by path instead of caching them
When it happens
Trigger: Calling getPartitionSchemaNames(idDirectory, includeDeleted) when the repository connection is down, the directory object id is invalid, or the underlying getChildren(fileId, includeDeleted) pur call throws.
Common situations: Stale repository session after server restart or timeout; listing a directory that was deleted by another user; network failure to the Pentaho server; insufficient permissions on the folder holding partition schemas.
Understand the failure class
Background: "API request failed": what wrapped HTTP errors from external APIs mean and how to find the real cause — this error's family across 29 libraries.
Related errors
- Unable to get all slave server IDs
- Unable to get all slave server names
- Unable to get all transformation names
- Unable to get list of objects from directory [dirId]
- Unable to load cluster schema with id [idClusterSchema]
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/641177948e4fca81.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepository.java:1617
ids.add( new StringObjectId( file.getId().toString() ) );
}
return ids.toArray( new ObjectId[ 0 ] );
} catch ( Exception e ) {
throw new KettleException( "Unable to get all partition schema IDs", e );
}
}
@Override
public String[] getPartitionSchemaNames( boolean includeDeleted ) throws KettleException {
try {
List<RepositoryFile> children = getAllFilesOfType( null, RepositoryObjectType.PARTITION_SCHEMA, includeDeleted );
List<String> names = new ArrayList<String>();
for ( RepositoryFile file : children ) {
names.add( file.getTitle() );
}
return names.toArray( new String[ 0 ] );
} catch ( Exception e ) {
throw new KettleException( "Unable to get all partition schema names", e );
}
}
@Override
public RepositoryMeta getRepositoryMeta() {
return repositoryMeta;
}
@Override
public RepositorySecurityProvider getSecurityProvider() {
return securityProvider;
}
@Override
public RepositorySecurityManager getSecurityManager() {
return securityManager;
}
View on GitHub (pinned to f3058517a1)