pentaho/pentaho-kettle · error · KettleException
Unable to select file provider!
Error message
Unable to select file provider!
What it means
FileOpenSaveDialog throws this KettleException when the provider lookup for the current file-open/save state fails — no registered provider matches the requested provider id/type. The dialog then surfaces it via an ErrorDialog as 'unable to create folder'.
Solutions
- Ensure the file-open-save provider plugins are present and loaded (check plugin directories and logs)
- Verify the provider id/name passed to the dialog matches a registered provider
- Reinstall/repair the missing provider plugin
Defensive patterns
Strategy: try-catch
Validate before calling
// check provider availability before opening dialog boolean ok = providerManager.getProviders().stream().anyMatch( p -> p.getId().equals( providerId ) );
Try / catch
try { dialog.open(...); } catch ( KettleException e ) { if ( e.getMessage().contains( "file provider" ) ) { /* reinstall/re-register provider plugin */ } } Prevention
- Verify file-open-save plugin bundles are installed
- Check startup logs for provider registration failures
- Keep provider ids consistent with registered providers
When it happens
Trigger: Creating a folder (or resolving a destination) in the VFS browser when the provider id stored in the dialog state does not match any registered FileProvider (e.g. plugin missing/disabled, unknown provider name).
Common situations: file-open-save provider plugins not loaded; custom provider plugin removed or failing to register; stale dialog state referencing a provider from a different configuration.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- ConnectionFileSystem.FailedTransformProviderFilename
- failed to check isFile in setFilename()
- failed to check isFile in setPath()
- failed to check isFile in setStartDir()
- AbstractFileErrorHandler.Exception.CouldNotCreateFileErrorHandlerForFile
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/57d7d73e61402cf8.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/file-open-save-new/core/src/main/java/org/pentaho/di/plugins/fileopensave/dialog/FileOpenSaveDialog.java:2134
selectPath( treeViewerDestination );
IStructuredSelection selectionAsStructuredSelection = new StructuredSelection( treeViewerDestination );
treeViewer.setSelection( selectionAsStructuredSelection, true );
if ( !treeViewer.getExpandedState( selectionAsStructuredSelection ) ) {
treeViewer.setExpandedState( selectionAsStructuredSelection, true );
}
// Set selection in fileTableViewer to new folder
for ( TableItem tableItem : fileTableViewer.getTable().getItems() ) {
if ( tableItem.getText( 0 ).equals( newFolderName ) ) {
fileTableViewer.getTable().setSelection( tableItem );
fileTableViewer.getTable().setFocus();
break;
}
}
processState();
return true;
} else {
throw new KettleException( "Unable to select file provider!" );
}
} catch ( Exception ex ) {
new ErrorDialog( getShell(), "Error",
BaseMessages.getString( PKG, "file-open-save-plugin.error.unable-to-create-folder.title" ), ex, false );
}
return false;
}
private Image rasterImage( String path, int width, int height ) {
return rasterImage( getClass().getClassLoader(), path, width, height );
}
private Image rasterImage( ClassLoader classLoader, String path, int width, int height ) {
SwtUniversalImage img =
SwtSvgImageUtil.getUniversalImage( getShell().getDisplay(), classLoader, path );
Image image = img.getAsBitmapForSize( getShell().getDisplay(), width, height );
getShell().addDisposeListener( e -> {
img.dispose();View on GitHub (pinned to f3058517a1)