pentaho/pentaho-kettle · error · KettleVFSFileSystemException

ConnectionFileProvider.FailedLoadConnectionManager

ConnectionFileProvider.FailedLoadConnectionManager

Error message

ConnectionFileProvider.FailedLoadConnectionManager

What it means

ConnectionFileProvider.getDefaultManager() wraps any KettleException raised while asking the Bowl for the ConnectionManager into a KettleVFSFileSystemException. The VFS provider cannot function without a ConnectionManager, so the failure is fatal to any pvfs:// file operation. The original KettleException is preserved as the cause.

Solutions

  1. Inspect the wrapped KettleException cause for the real initialization failure
  2. Verify the connection management plugin is present and loadable on the classpath
  3. Ensure the Kettle environment (KettleEnvironment.init / Bowl setup) is fully initialized before using pvfs:// URLs
  4. Check repository/Bowl configuration that registers ConnectionManager

Example fix

// before: using VFS before environment init
FileObject f = KettleVFS.getInstance().getFileObject("pvfs://myconn/file.txt");
// after
KettleEnvironment.init();
FileObject f = KettleVFS.getInstance().getFileObject("pvfs://myconn/file.txt");
Defensive patterns

Strategy: try-catch

Validate before calling

// verify manager is resolvable before VFS use
try { bowl.getManager(ConnectionManager.class); } catch (KettleException e) { /* abort pvfs usage */ }

Try / catch

try { resolvePvfs(); } catch (FileSystemException e) { if (e.getCause() instanceof KettleVFSFileSystemException k) { log(k.getCause()); } }

Prevention

When it happens

Trigger: Calling bowl.getManager(ConnectionManager.class) throws a KettleException — e.g. the ConnectionManager plugin fails to initialize, the Bowl/repository cannot resolve the manager class, or manager construction fails during lookup.

Common situations: Broken or missing connection-management plugin on the classpath; repository/Bowl misconfiguration; corrupted kettle environment where the ConnectionManager lifecycle fails at startup; running embedded without proper Kettle environment initialization.

Related errors


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

Appendix: source

Thrown at core/src/main/java/org/pentaho/di/connections/vfs/provider/ConnectionFileProvider.java:91

    if ( !( parser instanceof ConnectionFileNameParser ) ) {
      throw new IllegalArgumentException( "Argument 'parser' is not an instance of 'ConnectionFileNameParser'." );
    }

    super.setFileNameParser( parser );
  }

  // The bowl is stored in the FileSystemOptions.
  @NonNull
  protected Bowl getBowl( @NonNull FileSystemOptions fileSystemOptions ) {
    return KettleGenericFileSystemConfigBuilder.getInstance().getBowl( fileSystemOptions );
  }

  @NonNull
  protected ConnectionManager getDefaultManager( @NonNull Bowl bowl ) throws FileSystemException {
    try {
      return bowl.getManager( ConnectionManager.class );
    } catch ( KettleException e ) {
      throw new KettleVFSFileSystemException( "ConnectionFileProvider.FailedLoadConnectionManager", e );
    }
  }

  @Override
  public Collection<Capability> getCapabilities() {
    return capabilities;
  }
}

View on GitHub (pinned to f3058517a1)