{"record":{"id":"57d7d73e61402cf8","repo":"pentaho/pentaho-kettle","slug":"unable-to-select-file-provider","errorCode":null,"errorMessage":"Unable to select file provider!","messagePattern":"Unable to select file provider!","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/file-open-save-new/core/src/main/java/org/pentaho/di/plugins/fileopensave/dialog/FileOpenSaveDialog.java","lineNumber":2134,"sourceCode":"        selectPath( treeViewerDestination );\n\n        IStructuredSelection selectionAsStructuredSelection = new StructuredSelection( treeViewerDestination );\n        treeViewer.setSelection( selectionAsStructuredSelection, true );\n        if ( !treeViewer.getExpandedState( selectionAsStructuredSelection ) ) {\n          treeViewer.setExpandedState( selectionAsStructuredSelection, true );\n        }\n        // Set selection in fileTableViewer to new folder\n        for ( TableItem tableItem : fileTableViewer.getTable().getItems() ) {\n          if ( tableItem.getText( 0 ).equals( newFolderName ) ) {\n            fileTableViewer.getTable().setSelection( tableItem );\n            fileTableViewer.getTable().setFocus();\n            break;\n          }\n        }\n        processState();\n        return true;\n      } else {\n        throw new KettleException( \"Unable to select file provider!\" );\n      }\n    } catch ( Exception ex ) {\n      new ErrorDialog( getShell(), \"Error\",\n        BaseMessages.getString( PKG, \"file-open-save-plugin.error.unable-to-create-folder.title\" ), ex, false );\n    }\n    return false;\n  }\n\n  private Image rasterImage( String path, int width, int height ) {\n    return rasterImage( getClass().getClassLoader(), path, width, height );\n  }\n\n  private Image rasterImage( ClassLoader classLoader, String path, int width, int height ) {\n    SwtUniversalImage img =\n      SwtSvgImageUtil.getUniversalImage( getShell().getDisplay(), classLoader, path );\n    Image image = img.getAsBitmapForSize( getShell().getDisplay(), width, height );\n    getShell().addDisposeListener( e -> {\n      img.dispose();","sourceCodeStart":2116,"sourceCodeEnd":2152,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/file-open-save-new/core/src/main/java/org/pentaho/di/plugins/fileopensave/dialog/FileOpenSaveDialog.java#L2116-L2152","documentation":"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'.","triggerScenarios":"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).","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// check provider availability before opening dialog\nboolean ok = providerManager.getProviders().stream().anyMatch( p -> p.getId().equals( providerId ) );","typeGuard":null,"tryCatchPattern":"try { dialog.open(...); } catch ( KettleException e ) { if ( e.getMessage().contains( \"file provider\" ) ) { /* reinstall/re-register provider plugin */ } }","preventionTips":["Verify file-open-save plugin bundles are installed","Check startup logs for provider registration failures","Keep provider ids consistent with registered providers"],"tags":["vfs","provider","file-dialog","plugin"],"backgroundTag":"resource-not-found","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}