A convincing explanation is not a diagnosis. Ask for the next observation that would confirm or disprove it.
Preserve the useful failure context
Start with the full exception type, message, inner exception, and first application stack frame. Add the operation that failed, the runtime version, the most recent relevant change, and whether you can reproduce the failure.
The local error investigator matches common exception patterns and prepares a brief. Its suggestions are rules, not model inference. Treat them as a way to organize the investigation. Review the sanitized trace before pasting it into an external assistant; automatic redaction cannot recognize every business identifier or secret.
Separate the symptom from the mechanism
A timeout tells you an operation ran out of time. It does not tell you whether the cause was a slow query, a blocked thread, a network failure, or an exhausted connection pool. Increasing the timeout can postpone the same failure while consuming more resources.
For a slow application with unexpectedly low CPU usage, ThreadPool starvation is one possibility. Collect runtime counters and stack information while the problem is happening. Look for blocking patterns and queued work instead of concluding that low CPU means the application needs more cores.
dotnet-counters ps dotnet-counters monitor --process-id <PID> dotnet-stack report --process-id <PID>
Use a prompt that can be wrong
Ask your assistant to produce competing hypotheses, the evidence already available, and one falsifiable check for each. Do not give it permission to turn missing information into invented measurements.
Separate observations from hypotheses. For each hypothesis, give one check that could disprove it. Ask for the missing evidence before proposing a fix. When a fix is justified, include a regression test and the production signal that should improve.
Close the loop
After changing code, repeat the same workload and compare the same signals. Record the result even if the hypothesis was wrong. That small habit turns an AI conversation into a reusable engineering record rather than a sequence of plausible suggestions.