HolmesGPT Not Finding Any Issues? Here's Why.¶
1. Truncation: Too Much Data¶
Data overflow causes important information to be truncated. See #437 for summarization improvements.
Solution:
- Use specific namespaces and time ranges
- Target individual components instead of cluster-wide queries
2. Missing Data Access¶
HolmesGPT can't access logs, metrics, or traces from your observability stack.
Solution:
- Verify toolset configuration connects to Prometheus/Grafana/logs
- Test connectivity:
kubectl exec -it <holmes-pod> -- curl http://prometheus:9090/api/v1/query?query=up
3. Unclear Prompts¶
Vague questions produce poor results.
Bad:
- "Why is my pod not working?"
- "Check if anything is wrong with my cluster"
- "Something is broken in production and users are complaining"
- "My deployment keeps failing but I don't know why"
- "Can you debug this issue I'm having with my application?"
Good:
- "Why is payment-service pod restarting in production namespace?"
- "What caused memory spike in web-frontend deployment last hour?"
5. Model Issues¶
Older LLM models lack reasoning capability for complex problems.
Solution:
Recommended Models:
anthropic/claude-opus-4-1-20250805- Most powerful for complex investigations (recommended)anthropic/claude-sonnet-4-20250514- Superior reasoning with faster performancegpt-4.1- Good balance of speed/capability
See benchmark results for detailed model performance comparisons.
6. Extra inputs are not permitted Errors From the LLM Provider¶
Some providers reject messages that contain fields they don't recognize, producing errors like:
litellm.BadRequestError: OpenAIException - messages.1.provider_specific_fields: Extra inputs are not permitted
This happens when LiteLLM attaches provider-specific metadata (e.g. provider_specific_fields) to assistant messages and those messages are later sent back to a provider that doesn't accept the field.
Solution: Set LLM_EXTRA_STRIP_MESSAGE_FIELDS to a comma-separated list of fields to strip before sending:
Replace the value with whichever field is named in your error message. Multiple fields can be passed, e.g. "provider_specific_fields,reasoning_content".
7. Startup Fails with Connection reset by peer¶
HolmesGPT crashes on startup while signing in to the Robusta platform, with a traceback ending in:
This means an outbound firewall or egress policy is blocking traffic from your cluster to the Robusta platform. The hostname resolves and the TLS certificate is valid, so it is not a DNS or certificate problem — the connection itself is being reset or refused.
Solution:
Allow outbound HTTPS (port 443) from the HolmesGPT pod to the Robusta platform — i.e. allowlist the robusta.dev domain (*.robusta.dev), which covers the api.* and sp.* subdomains across all regions.
To confirm the block, run the one-off pod below. It auto-detects the Holmes pod's namespace and image and curls the platform from a fresh pod — the HolmesGPT pod itself crashes on this error (CrashLoopBackOff), so kubectl exec into it won't work. Reusing Holmes's own image means nothing new is pulled (the same firewall may also block image pulls) and it shares Holmes's CA and network config. Just pick your region — a firewall block shows Connection reset by peer, while a reachable endpoint returns JSON:
read -r NS IMG <<<"$(kubectl get pods -A -l app=holmes -o jsonpath='{.items[0].metadata.namespace} {.items[0].spec.containers[0].image}')"
kubectl run holmes-egress-check --rm -it --restart=Never -n "$NS" --image="$IMG" --command -- curl -vk https://sp.robusta.dev/auth/v1/healthread -r NS IMG <<<"$(kubectl get pods -A -l app=holmes -o jsonpath='{.items[0].metadata.namespace} {.items[0].spec.containers[0].image}')"
kubectl run holmes-egress-check --rm -it --restart=Never -n "$NS" --image="$IMG" --command -- curl -vk https://sp.eu.robusta.dev/auth/v1/healthread -r NS IMG <<<"$(kubectl get pods -A -l app=holmes -o jsonpath='{.items[0].metadata.namespace} {.items[0].spec.containers[0].image}')"
kubectl run holmes-egress-check --rm -it --restart=Never -n "$NS" --image="$IMG" --command -- curl -vk https://sp.ap.robusta.dev/auth/v1/healthIf the same logs also show a LiteLLM warning about failing to fetch the model cost map from raw.githubusercontent.com, that is the same firewall blocking GitHub egress — point Holmes at a region-local mirror with LITELLM_MODEL_COST_MAP_URL.
Still stuck?¶
Join our Slack community or open a GitHub issue for help.