{"record":{"id":"91463b9eeb52b585","repo":"JetBrains/intellij-community","slug":"0-action-is-now-supported-for-execution-on-the","errorCode":null,"errorMessage":"\"{0}\" action is now supported for execution on the local machine only","messagePattern":"\"(.+?)\" action is now supported for execution on the local machine only","errorType":"exception","errorClass":"ExecutionException","httpStatus":null,"severity":"error","filePath":"java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java","lineNumber":179,"sourceCode":"    throws ExecutionException {\n    final JavaParameters parameters = state.getJavaParameters();\n    patch(parameters, env.getRunnerSettings(), env.getRunProfile(), true);\n\n    if (Registry.is(\"execution.java.always.debug\") && DebuggerSettings.getInstance().ALWAYS_DEBUG) {\n      ParametersList parametersList = parameters.getVMParametersList();\n      if (!ContainerUtil.exists(parametersList.getList(), s -> s.startsWith(\"-agentlib:jdwp\"))) {\n        parametersList.add(\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,quiet=y\");\n      } \n    }\n  }\n\n  protected @NotNull Promise<@Nullable RunContentDescriptor> doExecuteAsync(@NotNull TargetEnvironmentAwareRunProfileState state,\n                                                                            @NotNull ExecutionEnvironment env)\n    throws ExecutionException {\n    FileDocumentManager.getInstance().saveAllDocuments();\n    boolean isLocal = !((TargetEnvironmentAwareRunProfile)env.getRunProfile()).needPrepareTarget();\n    if (!isLocal && !isExecutorSupportedOnTarget(env)) {\n      throw new ExecutionException(\n        ExecutionBundle.message(\"run.configuration.action.is.supported.for.local.machine.only\", env.getExecutor().getActionName())\n      );\n    }\n\n    return state.prepareTargetToCommandExecution(env, LOG,\"Failed to execute java run configuration async\", () -> {\n      @Nullable ProcessProxy proxy = null;\n      if (state instanceof JavaCommandLine) {\n        patchJavaCommandLineParams((JavaCommandLine)state, env);\n        if (isLocal) {\n          proxy = ProcessProxyFactory.getInstance().createCommandLineProxy((JavaCommandLine)state);\n        }\n      }\n\n      return executeJavaState(state, env, proxy);\n    });\n  }\n\n  /**","sourceCodeStart":161,"sourceCodeEnd":197,"githubUrl":"https://github.com/JetBrains/intellij-community/blob/be881553f2a76ac8b4ea53950d93f0de78295c19/java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java#L161-L197","documentation":"DefaultJavaProgramRunner.doExecuteAsync checks whether the run profile needs a remote target environment (needPrepareTarget()). If the run must execute on a non-local target (WSL, Docker, SSH remote, Cloud) and the chosen executor is not supported there (isExecutorSupportedOnTarget fails), it throws ExecutionException stating the action (e.g. Debug, Coverage, Profile) only works locally.","triggerScenarios":"Run/Debug a Java run configuration with a target environment (Docker/WSL/SSH run target) selected, using an executor that the Java program runner has not whitelisted for remote execution.","commonSituations":"User switches the run target to Docker or a remote SSH machine, then clicks Debug or Coverage; debug-in-docker is only supported through specific configurations, and coverage/profiling of remote processes is unsupported.","solutions":["Switch the run target back to 'Local' in the run configuration editor, then re-run the action","Or use an executor that supports remote targets (plain Run) for remote executions","For remote debugging, instead attach a 'Remote JVM Debug' configuration to the process's debug port rather than launching Debug on the target","Update IntelliJ — newer versions progressively support more executors on targets (e.g. WSL debug)"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// before executing with a special executor, check target support\nRunProfile profile = env.getRunProfile();\nboolean remote = profile instanceof TargetEnvironmentAwareRunProfile t && t.needPrepareTarget();\nif (remote && !isExecutorSupportedOnTarget(env)) {\n  return notifyLocalOnly(env.getExecutor().getActionName());\n}","typeGuard":null,"tryCatchPattern":"try {\n  runner.doExecuteAsync(state, env);\n} catch (ExecutionException e) {\n  // executor unsupported on the selected run target: suggest switching target to Local\n  suggestLocalTarget(e);\n}","preventionTips":["Switch the run target to Local before Debug/Coverage/Profile","For remote JVMs, use Remote JVM Debug attach configurations","Check executor/target compatibility matrices for your IDE version"],"tags":["execution","run-targets","docker","wsl","remote-debugging"],"backgroundTag":null,"analyzedSha":"be881553f2a76ac8b4ea53950d93f0de78295c19","analyzedAt":"2026-08-14T14:13:06.425Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}