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
- Inspect the wrapped KettleException cause for the real initialization failure
- Verify the connection management plugin is present and loadable on the classpath
- Ensure the Kettle environment (KettleEnvironment.init / Bowl setup) is fully initialized before using pvfs:// URLs
- 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
- Initialize KettleEnvironment before any pvfs usage
- Keep connection plugin jars on the classpath
- Smoke-test Bowl.getManager(ConnectionManager.class) at startup
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
- [ + ArgList[0] + ] is not a file!
- AvroInputDialog.Error.KettleFileException
- Central Log Store is not initialized!!!
- ChangeFileEncoding.Error.ParentFolderNotExist
- ChangeFileEncoding.Error.SourceFileNotAFile
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)