| name | openevidence-debug-bundle |
| description | Debug Bundle for OpenEvidence.
Trigger: "openevidence debug bundle".
|
| allowed-tools | Read, Bash(curl:*), Grep |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","openevidence","healthcare"] |
| compatibility | Designed for Claude Code |
OpenEvidence Debug Bundle
Overview
This debug bundle collects diagnostic evidence from OpenEvidence clinical decision support
API integrations for troubleshooting evidence retrieval, clinical query accuracy, and
response latency issues. It captures API token validation, clinical query endpoint health,
evidence citation availability, model version metadata, and response time benchmarks. The
resulting tarball provides the evidence needed to diagnose query failures, missing clinical
references, citation linking errors, and compliance logging gaps without requiring direct
OpenEvidence dashboard access.
Prerequisites
curl, jq, tar installed
OPENEVIDENCE_API_KEY set (API key from OpenEvidence developer portal)
- Network access to
api.openevidence.com (HTTPS 443)
Debug Collection Script
#!/bin/bash
set -euo pipefail
BUNDLE="debug-openevidence-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"
echo "=== Environment ===" > "$BUNDLE/environment.txt"
echo "API Key: ${OPENEVIDENCE_API_KEY:+SET (redacted)}" >> "$BUNDLE/environment.txt"
echo "Node: $(node -v 2>/dev/null || echo 'not installed')" >> "$BUNDLE/environment.txt"
echo "Python: $(python3 --version 2>/dev/null || echo 'not installed')" >> "$BUNDLE/environment.txt"
echo "Timestamp: $(date -u)" >> "$BUNDLE/environment.txt"
echo "=== API Health ===" > "$BUNDLE/api-health.txt"
curl -sf -o "$BUNDLE/api-health.txt" -w "HTTP %{http_code} in %{time_total}s\n" \
-H "Authorization: Bearer ${OPENEVIDENCE_API_KEY}" \
"https://api.openevidence.com/v1/health" 2>&1 || echo "UNREACHABLE" > "$BUNDLE/api-health.txt"
echo >
curl -sf -X POST \
-H \
-H \
-d \
>> 2>&1 || >
>
QUERY_ID=$(jq -r 2>/dev/null)
[ -n ];
curl -sf -H \
\
>> 2>&1 || >
>
>
curl -sf -H \
\
>> 2>&1 || >
>
-100 /var/log/openevidence-integration/*. >> 2>/dev/null || >>
>
curl -sI -H \
2>/dev/null | grep -i >> || >>
>
pip list 2>/dev/null | grep -i openevidence >> || >>
npm 2>/dev/null | grep -i openevidence >> || >>
tar -czf && -rf
Analyzing the Bundle
tar -xzf debug-openevidence-*.tar.gz
cat debug-openevidence-*/environment.txt
cat debug-openevidence-*/api-health.txt
jq '.answer' debug-openevidence-*/query-test.json
jq '.citations | length' debug-openevidence-*/citations.json
jq '.modelVersion' debug-openevidence-*/model-info.json
Common Issues
| Symptom | Check in Bundle | Fix |
|---|
| 401 Unauthorized | environment.txt shows key NOT SET | Generate new API key in OpenEvidence developer portal |
| Query returns generic response | query-test.json missing clinical specifics | Increase max_results; add clinical context (age, comorbidities) to query body |
| Citations array empty | citations.json has zero entries | Evidence retrieval may lag query by 2-5s; add ?wait=true parameter to citation request |
| 503 Service Unavailable | api-health.txt shows 503 | Check OpenEvidence status page; clinical model reloads can cause 30-60s downtime windows |
| High latency (>10s) | api-health.txt shows time_total > 10s | Complex clinical queries take longer; use streaming endpoint for real-time responses |
| Rate limited on query endpoint | rate-limits.txt shows retry-after | Clinical query limit is 60 req/min; queue requests with exponential backoff |
Automated Health Check
async function checkOpenEvidenceHealth(): Promise<{
status: string;
latencyMs: number;
apiReachable: boolean;
queryWorking: boolean;
modelVersion: string;
}> {
const apiKey = process.env.OPENEVIDENCE_API_KEY;
const headers = {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
};
const start = Date.now();
const healthRes = await fetch("https://api.openevidence.com/v1/health", {
headers: { Authorization: `Bearer ${apiKey}` },
});
const queryRes = await fetch("https://api.openevidence.com/v1/query", {
method: "POST",
headers,
body: JSON.stringify({
query: "What is the recommended first-line treatment for hypertension?",
max_results: 1,
}),
});
let modelVersion = "unknown";
{
modelRes = (, {
: { : },
});
(modelRes.) {
data = modelRes.();
modelVersion = data. ?? ;
}
} { }
{
: healthRes. && queryRes. ? : ,
: .() - start,
: healthRes.,
: queryRes.,
modelVersion,
};
}
Resources
Next Steps
See openevidence-rate-limits.