Quick Diagnostics
Before diving into specific issues, run these quick checks:Installation & Setup Issues
Docker Compose Fails to Start
Symptoms:- Services won’t start
- Exit code errors
- Container crashes immediately
1. Docker daemon not running
1. Docker daemon not running
2. Port conflicts
2. Port conflicts
docker-compose.yml to use different ports:3. Insufficient system resources
3. Insufficient system resources
-
macOS: Docker Desktop → Preferences → Resources
- RAM: Minimum 8GB (16GB recommended)
- CPUs: Minimum 4 cores
- Disk: Minimum 20GB free
-
Linux: Edit Docker daemon config
4. Missing .env file
4. Missing .env file
WARNING: The OPENAI_API_KEY variable is not setSolution:5. Python WASI interpreter missing
5. Python WASI interpreter missing
python_wasi/bin/python3.11: No such file or directorySolution:API & Connection Issues
401 Unauthorized
Symptoms:- HTTP 401 responses
- “Unauthorized” error messages
Solution 1: Disable authentication (development)
Solution 1: Disable authentication (development)
.env:Solution 2: Provide valid API key (production)
Solution 2: Provide valid API key (production)
Connection Refused / Service Unavailable
Symptoms:connection refuseddial tcp: connect: connection refused- Services not responding
Solution 1: Services not ready
Solution 1: Services not ready
Solution 2: Service crashed
Solution 2: Service crashed
Solution 3: Database connection failed
Solution 3: Database connection failed
Task Stuck in RUNNING or QUEUED State
Symptoms:- Task never completes
- Status remains RUNNING for hours
- No progress updates
Solution 1: LLM API key invalid or quota exceeded
Solution 1: LLM API key invalid or quota exceeded
Solution 2: Temporal worker deadlock
Solution 2: Temporal worker deadlock
Solution 3: Circuit breaker open
Solution 3: Circuit breaker open
- LLM Service circuit breaker
- Database circuit breaker
- Redis circuit breaker
Budget & Cost Issues
Budget Exceeded Errors
Symptoms:budget exceedederror- Tasks fail with cost limit errors
- HTTP 429 (Rate Limited) Payment Required
Solution 1: Increase budget limits
Solution 1: Increase budget limits
.env:Solution 2: Use simpler execution mode
Solution 2: Use simpler execution mode
- Simple: 1 LLM call, $0.01-0.05
- Standard: 3-5 LLM calls, $0.05-0.20
- Advanced: 10+ LLM calls, $0.20-1.00+
Solution 3: Disable budget enforcement (development only)
Solution 3: Disable budget enforcement (development only)
.env:Performance Issues
Slow Response Times
Symptoms:- Tasks take 2-3x longer than expected
- High latency
- Timeouts
Solution 1: Insufficient CPU/Memory
Solution 1: Insufficient CPU/Memory
- macOS: Docker Desktop → Resources → increase RAM to 16GB, CPUs to 6
- Linux: More powerful machine or reduce concurrent workflows
.env:Solution 2: Cold start / cache misses
Solution 2: Cold start / cache misses
- LLM response cache (Redis)
- Session context cache
- Tool result cache
Solution 3: Database connection pool exhausted
Solution 3: Database connection pool exhausted
.env:Tokens > 0 but empty result
Symptoms:- Database or logs show non‑zero completion tokens, but the final
resulttext is empty. - Complex prompts return nothing while simple prompts work.
- Some GPT‑5 chat responses return content as structured parts instead of a plain string. Older parsing could miss the text. This is fixed by routing GPT‑5 models via the Responses API and defensively normalizing content for chat responses.
- LLM Service routes GPT‑5 models to the Responses API and prefers
output_textwhen available. - Chat providers normalize content by joining text parts when a list is returned.
- If you upgraded from an older build, restart the LLM Service to clear cached empty responses.
- Re‑run a long, multi‑paragraph prompt.
resultlength should be > 0 and session history should include the assistant message.
High Memory Usage
Symptoms:- OOM (Out of Memory) errors
- Container restarts
- Swap usage high
Solution: Reduce cache sizes
Solution: Reduce cache sizes
config/shannon.yaml or set env vars:Data & State Issues
Sessions Not Persisting
Symptoms:- Session context lost between requests
- Agent doesn’t remember previous tasks
Solution 1: Redis connection failed
Solution 1: Redis connection failed
Solution 2: Session expired (TTL)
Solution 2: Session expired (TTL)
.env:Solution 3: Using consistent session IDs
Solution 3: Using consistent session IDs
Database Migration Errors
Symptoms:- Table doesn’t exist errors
- Column not found errors
- Schema version mismatch
Debugging Tools
Viewing Logs
Temporal UI
Access: http://localhost:8088 Features:- View all workflows
- See execution history
- Replay failed workflows
- Terminate stuck workflows
- Time-travel debugging
- Navigate to Workflows
- Search by workflow ID (task ID)
- View execution history to see where it failed
- Check Activity logs for detailed errors
Prometheus Metrics
tasks_submitted_totaltasks_completed_totaltasks_failed_totalllm_requests_totalcircuit_breaker_state
Real-time Dashboard
Access: http://localhost:2111 Features:- Live task execution
- Event streams
- Token usage graphs
- System health