Delete temporary diagnostic files: %TEMP%\Microsoft Diagnostics Hub\ %LOCALAPPDATA%\Microsoft\VisualStudio\<version>\DiagnosticsHub\
Shut down other profilers, performance monitors, or secondary Visual Studio instances debugging the same process.
try
1. Overview & Context The exception microsoft.diagnosticshub.diagnostics.collectionstartfailedhubexception is a specific, platform-level error originating from Microsoft’s Diagnostic Hub —a component primarily used within Visual Studio and other Microsoft developer tools (like Performance Profiler, CPU Usage tool, Memory Usage tool, and IntelliTrace). await diagnosticHubSession
await diagnosticHubSession.StartCollectionAsync(targetProcessId);
If the target process requires elevation, launch Visual Studio with admin rights ( Right-click → Run as administrator ).
| Aspect | Detail | |--------|--------| | Type | Developer-environment exception, not production code | | Primary source | Visual Studio Diagnostic Tools | | Meaning | Failed to begin collecting performance/debug data from a target process | | Most common fix | Run VS as admin, close other profilers, repair VS | | Inner exception significance | High – reveals actual system-level failure | This exception is a diagnostic failure of a diagnostic tool—an ironic but informative error that typically points to environment or permission issues rather than a bug in your application code. If the problem disappears, a specific tool (e
In Visual Studio: Debug → Options → Enable Diagnostic Tools while debugging (uncheck). If the problem disappears, a specific tool (e.g., CPU Usage) is misconfigured. 7. Code Example (Illustrative) You would not typically catch this exception in production code. However, a diagnostic extension or custom profiler host might handle it like this:
catch (DiagnosticsCollectionStartFailedHubException ex)
Console.WriteLine($"Diagnostic collection failed: ex.Message"); if (ex.InnerException is UnauthorizedAccessException) Console.WriteLine("Try running Visual Studio as Administrator."); // Log to telemetry or retry with fallback configuration If the problem disappears
Common failure scenarios include:
From the Visual Studio Installer → select More → Repair . This restores missing or corrupted Diagnostic Hub components.
| Scenario | Explanation | |----------|-------------| | | The debugged app terminates between the “start collection” command and the diagnostic session’s initialization. | | Insufficient permissions | The Diagnostic Hub lacks permission to attach ETW sessions or read memory from the target process (e.g., elevated UAC requirements). | | Conflicting diagnostic tools | Another profiler (e.g., JetBrains dotMemory, PerfView, or a second Visual Studio instance) already holds a lock on the target process’s diagnostic interfaces. | | Corrupted Visual Studio installation | Missing or mismatched versions of DiagnosticsHub binaries or its dependencies (e.g., Microsoft.Diagnostics.Tracing.EventSource ). | | Unsupported runtime or architecture | Trying to collect diagnostics from an unsupported environment, such as a 32-bit process from a 64-only diagnostic host, or a .NET Framework app with incompatible profiling APIs. | 4. Typical Stack Trace Pattern While the exact trace varies, a typical exception might look like this: