{"record":{"id":"648b9c0278bbd09d","repo":"pentaho/pentaho-kettle","slug":"unable-to-access-run-configuration-manager","errorCode":null,"errorMessage":"Unable to access run configuration manager","messagePattern":"Unable to access run configuration manager","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"plugins/engine-configuration/impl/src/main/java/org/pentaho/di/engine/ui/RunConfigurationDelegate.java","lineNumber":330,"sourceCode":"  private void moveToGlobalInternal( RunConfigurationService manager, RunConfiguration runConfiguration ) {\n    moveCopy( manager, runConfiguration, spoonSupplier.get().getGlobalManagementBowl(), true );\n  }\n\n  public void moveToProject( RunConfigurationService manager, RunConfiguration runConfiguration ) {\n    executeWithSessionRetry( () -> moveToProjectInternal( manager, runConfiguration ), \"Error moving to project\" );\n  }\n\n  private void moveToProjectInternal( RunConfigurationService manager, RunConfiguration runConfiguration ) {\n    moveCopy( manager, runConfiguration, spoonSupplier.get().getManagementBowl(), true );\n  }\n\n  private void moveCopy( RunConfigurationService srcManager, RunConfiguration runConfiguration, Bowl targetBowl,\n                         boolean deleteSource ) {\n    RunConfigurationService targetManager;\n    try {\n      targetManager = targetBowl.getManager( RunConfigurationService.class );\n    } catch ( KettleException e ) {\n      throw new IllegalStateException( \"Unable to access run configuration manager\", e );\n    }\n    if ( targetManager.getNames().stream().anyMatch( element -> element.equalsIgnoreCase( runConfiguration.getName() ) ) ) {\n      if ( !shouldOverwrite( BaseMessages.getString( PKG, \"RunConfigurationDialog.OverwriteRunConfigurationYN\",\n        runConfiguration.getName() ) ) ) {\n        return;\n      } else {\n        targetManager.delete( runConfiguration.getName() );\n      }\n    }\n    targetManager.save( runConfiguration );\n    if ( deleteSource ) {\n      srcManager.delete( runConfiguration.getName() );\n    }\n    refreshTree();\n  }\n\n  protected boolean shouldOverwrite( String message ) {\n    MessageBox mb = new MessageBox( spoonSupplier.get().getShell(), SWT.YES | SWT.NO | SWT.ICON_QUESTION );","sourceCodeStart":312,"sourceCodeEnd":348,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/engine-configuration/impl/src/main/java/org/pentaho/di/engine/ui/RunConfigurationDelegate.java#L312-L348","documentation":"RunConfigurationDelegate.moveCopy() throws IllegalStateException when targetBowl.getManager(RunConfigurationService.class) fails with a KettleException, meaning the run configuration service manager could not be obtained for the target project/bowl. Copying or moving the run configuration cannot proceed.","triggerScenarios":"Invoking copyToGlobalInternal, copyToProjectInternal, moveToGlobalInternal, or moveToProjectInternal when the target bowl cannot supply a RunConfigurationService — plugin not loaded, bowl initialization failed, or an internal KettleException in manager lookup.","commonSituations":"Copying run configurations to a project whose lifecycle/plugin registry failed to initialize, corrupted project metadata, or a PDI plugin loading problem in the target environment.","solutions":["Inspect the nested KettleException for why the RunConfigurationService manager lookup failed","Restart PDI (Spoon) so all project plugins and bowls re-initialize","Verify the target project is valid and properly initialized (check project configuration files)","Recreate the target project if its bowl state is corrupted, then retry the copy/move"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  delegate.copyToProject( runConfiguration, targetProject );\n} catch ( IllegalStateException e ) {\n  logError( \"Target project RunConfigurationService unavailable: \" + e.getCause().getMessage() );\n  // restart Spoon / reinitialize project before retrying\n}","preventionTips":["Ensure target projects initialize cleanly (check Spoon startup logs)","Restart PDI if plugin/bowl initialization errors appear","Verify project configuration files are valid before moving configurations"],"tags":["pdi","run-configuration","service-lookup","projects"],"backgroundTag":"missing-dependency","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"}