Common Errors
API Authentication Errors
Missing API Keys
Missing API Keys
Error Message:Solution:
Get API Keys
- Google Gemini - LLM query generation
- Tavily - Google Search API
- NewsAPI - News data
Invalid API Keys
Invalid API Keys
Error Message:Diagnosis:Solution: Regenerate invalid API keys from provider dashboards.
API Rate Limit Exceeded
API Rate Limit Exceeded
Error Message:How Rate Limiting Works:The engine uses token bucket rate limiting with automatic retries:Solutions:
backend/app/decorators/api_rate_limiter.py
- Reduce Concurrency
- Adjust Rate Limits
- Upgrade API Plan
Lower
max_parallel_searches in request:Circuit Breaker Issues
Understanding Circuit States
Circuit breakers protect against cascading failures:backend/app/core/circuit_breaker.py
Circuit Breaker Stuck Open
Circuit Breaker Stuck Open
Symptom: Source returns Root Causes:
error="circuit open" for all requestsDiagnosis:- API Service Down: External API is experiencing outages
- Rate Limiting: API rejecting too many requests
- Network Issues: Timeouts or connection errors
- Invalid Configuration: Wrong API endpoint or credentials
Too Many Circuit Breaker Trips
Too Many Circuit Breaker Trips
Symptom: Circuits constantly opening and closingSolution: Increase failure threshold or improve error handling:
Redis Connection Issues
Redis Connection Failed
Redis Connection Failed
Cache Not Working
Cache Not Working
Symptom: Duplicate evidence appearing despite Redis cachingDiagnosis:Common Causes:Solution: Normalize URLs before caching:
- Cache Cleared Too Frequently:
- Evidence Object Mismatch:
Performance Issues
Slow Research Runs
Slow Research Runs
Symptoms: Research taking >10 seconds for small batchesDiagnostic Steps:
Performance Targets:
| Batch Size | Search Depth | Target Time |
|---|---|---|
| 10 domains | quick | 2-4 seconds |
| 10 domains | standard | 3-5 seconds |
| 50 domains | standard | 8-12 seconds |
| 50 domains | comprehensive | 15-20 seconds |
High Memory Usage
High Memory Usage
Symptom: Python process using >2GB RAMCommon Causes:
- TF-IDF Vectorizer Cache: Vectorizer stores large matrices in memory
- Redis Connection Pool: Many connections open simultaneously
- Evidence Accumulation: Thousands of evidence objects in memory
Asyncio Event Loop Blocked
Asyncio Event Loop Blocked
Symptom: Warning messages about slow async operationsRoot Cause: Blocking operations in async functionsBad Examples:Good Examples:
LLM Analysis Issues
Low Confidence Scores
Low Confidence Scores
Symptom: All companies returning confidence_score < 0.3Root Causes:
- Vague Research Goal: LLM can’t generate relevant keywords
- Poor Evidence Quality: Not enough relevant data from sources
- LLM Prompt Issues: Extraction strategy too restrictive
- Improve Research Goal
- Check Generated Keywords
- Increase Search Depth
Before (Vague)
After (Specific)
Gemini API Errors
Gemini API Errors
Error Messages:Solutions:
Check Quota
Visit Google AI Studio to check your quota.
Reduce Gemini Calls
The extractor makes 2 LLM calls per research run:
- Generate extraction strategy (cached)
- Extract technologies from evidence (per domain)
backend/app/services/extractor.py
JSON Parsing Errors
JSON Parsing Errors
Error Message:Cause: LLM returning malformed JSONSolution: The extractor has built-in JSON cleaning:If errors persist, add more robust parsing:
backend/app/services/extractor.py
Debugging Tools
Enable Debug Logging
backend/app/server.py
Monitor Pipeline Execution
Test Individual Components
test_sources.py
Getting Help
GitHub Issues
Report bugs and request features
Performance Tuning
Optimize for better performance
Custom Sources
Extend with custom data sources
API Reference
Complete API documentation
Error Code Reference
Common HTTP Status Codes
Common HTTP Status Codes
| Code | Meaning | Common Cause | Solution |
|---|---|---|---|
| 401 | Unauthorized | Invalid API key | Regenerate API key |
| 429 | Too Many Requests | Rate limit exceeded | Reduce max_parallel_searches |
| 500 | Internal Server Error | API service issue | Retry or contact API support |
| 503 | Service Unavailable | API temporarily down | Wait and retry |
Circuit Breaker Error Codes
Circuit Breaker Error Codes
| Error | State | Action |
|---|---|---|
circuit open | OPEN | Wait for reset_timeout_seconds |
unknown channel | N/A | Check source is registered |
circuit half_open | HALF_OPEN | Testing recovery, retry |