{"record":{"id":"3f2031a9226fad49","repo":"microsoft/aspire","slug":"failed-to-start-developer-control-plane-dcp","errorCode":null,"errorMessage":"Failed to start Developer Control Plane (DCP).","messagePattern":"Failed to start Developer Control Plane \\(DCP\\)\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/Aspire.Cli/Utils/EnvironmentChecker/DcpConnectionChecker.cs","lineNumber":275,"sourceCode":"                // Keeping it under the doctor-owned temp directory prevents overlap with AppHost sessions.\n                environmentVariables[\"DCP_SESSION_FOLDER\"] = sessionDirectory;\n\n                var options = new ProcessInvocationOptions\n                {\n                    StandardOutputCallback = output.AppendOutput,\n                    StandardErrorCallback = output.AppendError\n                };\n\n                process = processExecutionFactory.CreateExecution(\n                    dcpExecutablePath,\n                    arguments.ToArray(),\n                    environmentVariables,\n                    executionContext.WorkingDirectory,\n                    options);\n\n                if (!await process.StartAsync(cancellationToken).ConfigureAwait(false))\n                {\n                    throw new InvalidOperationException(DoctorCommandStrings.DcpStartFailedMessage);\n                }\n\n                processStarted = true;\n                var session = new DcpConnectionTestSession(process, sessionDirectory, kubeconfigPath, output, logger);\n                await session.WaitForKubeconfigFileAsync(cancellationToken).ConfigureAwait(false);\n                return session;\n            }\n            catch\n            {\n                if (process is not null)\n                {\n                    try\n                    {\n                        if (processStarted && !process.HasExited)\n                        {\n                            process.Kill(entireProcessTree: true);\n                        }\n                    }","sourceCodeStart":257,"sourceCodeEnd":293,"githubUrl":"https://github.com/microsoft/aspire/blob/25830f84bd145686607ad00c057b3f84e2e51d43/src/Aspire.Cli/Utils/EnvironmentChecker/DcpConnectionChecker.cs#L257-L293","documentation":"Aspire's environment checker (`aspire doctor` diagnostics) attempts to start a local DCP (Developer Control Plane) server process to verify connectivity. If the process object reports StartAsync returned false - the OS failed to launch the DcpServer executable - the checker throws InvalidOperationException with a generic 'Failed to start DCP' message so the doctor flow can surface and log the failure.","triggerScenarios":"DcpConnectionChecker.StartAsync invoking process.StartAsync (via Hex1b-style process launch) and it returning false - DCP binaries missing/not installed, executable path not found, or OS-level launch failure (bad permissions, incompatible binary).","commonSituations":"A broken or partial `aspire` install where the DCP binaries were never downloaded, an antivirus quarantining the dcp executable, running on an unsupported platform, or file permission problems in the working directory where DCP is launched.","solutions":["Reinstall or update the Aspire CLI/DCP components (`aspire update` or reinstall) so the DCP server binaries exist and match your platform.","Verify the DCP executable path exists and is executable (check antivirus quarantine and file permissions).","Check the doctor output/log for the underlying OS error (missing file, access denied) and fix that root cause.","Confirm you are on a supported OS/architecture for DCP."],"exampleFix":"// user-side: verify DCP binaries exist before diagnosing\nvar dcpPath = Path.Combine(aspireCliDir, \"dcp\");\nif (!File.Exists(dcpPath))\n{\n    Console.WriteLine(\"DCP binaries missing; run 'aspire update' to reinstall.\");\n    return;\n}","handlingStrategy":"try-catch","validationCode":"var dcpPath = FindDcpExecutable();\nbool launchable = dcpPath is not null && File.Exists(dcpPath) && (OperatingSystem.IsWindows() || HasUnixExecBit(dcpPath));","typeGuard":null,"tryCatchPattern":"try { await dcpChecker.CheckAsync(options); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"Failed to start Developer Control Plane\")) { Console.Error.WriteLine(\"DCP could not launch - reinstall via 'aspire update' and check AV/permissions.\"); }","preventionTips":["Keep the Aspire CLI/DCP updated so binaries exist and match the platform.","Exclude development tool directories from antivirus scanning.","Verify file-execute permissions when running in restricted environments."],"tags":["dcp","process-start","doctor","cli"],"backgroundTag":"process-start-failed","analyzedSha":"25830f84bd145686607ad00c057b3f84e2e51d43","analyzedAt":"2026-09-16T11:10:06.193Z","contentChangedAt":"2026-09-16T11:10:06.193Z","schemaVersion":2},"datasetVersion":"2026-09-21T04:17:39.646Z"}