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

  1. Log/print e.getCause() to find the real failure (connection, permission, or missing folder).
  2. Reconnect/re-authenticate to the repository (repository.connect) and retry the listing.
  3. Verify the directory id exists via getDirectory(idDirectory) before listing.
  4. 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

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


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)