Troubleshooting
Common issues and solutions
This guide covers common issues when running the Conserver and how to resolve them.
Diagnostic Commands
Check System Health
# Redis connectivity
redis-cli ping
# Expected: PONG
# API health
curl -H "x-conserver-api-token: $TOKEN" http://localhost:8000/api/config
# Queue status
redis-cli LLEN incoming_calls
redis-cli LLEN incoming_calls:dlqView Logs
# Docker Compose logs
docker compose logs -f conserver-api
docker compose logs -f conserver-worker
# Filter for errors
docker compose logs conserver-worker 2>&1 | grep -i errorConnection Issues
Redis Connection Failed
Symptoms:
Workers won't start
"Connection refused" errors
API returns 500 errors
Diagnosis:
Solutions:
Verify Redis URL:
Check Docker networking:
Redis memory full:
API Authentication Failed
Symptoms:
403 Forbidden responses
"Invalid API Key" errors
Solutions:
Check token configuration:
Check header name:
For external ingress, check ingress_auth config:
Processing Issues
vCons Not Being Processed
Symptoms:
Queue depth keeps growing
No worker activity in logs
vCons stuck in ingress list
Diagnosis:
Solutions:
Chain not enabled:
Ingress list mismatch:
Workers crashed:
Configuration not loaded:
High DLQ Count
Symptoms:
vCons accumulating in dead letter queue
Processing errors in logs
Diagnosis:
Solutions:
Identify the failing link:
Check logs for which link is failing
Look for exceptions and stack traces
Common link failures:
API key missing/invalid:
External service down:
Timeout:
Reprocess after fixing:
Link Timeout
Symptoms:
"Processing timeout" errors
vCons moving to DLQ after timeout period
Solutions:
Increase chain timeout:
Optimize processing:
Use faster models
Skip unnecessary processing steps
Add sampling to process fewer vCons
Check external API performance:
Transcription Issues
No Transcription Generated
Symptoms:
vCon has no transcript analysis
Transcription link completes but adds nothing
Diagnosis:
Solutions:
Check dialog type:
Check duration requirement:
Check audio URL is accessible:
Check API key:
Transcription Already Exists
Symptoms:
"Dialog already transcribed" in logs
Link skipping dialogs
Explanation: Links skip processing if analysis already exists (idempotency).
If you need to re-transcribe:
Delete the vCon and re-submit
Or create a new link with different
analysis_type
Storage Issues
Storage Write Failed
Symptoms:
"Failed to save" errors
vCon not appearing in storage backend
Diagnosis:
Solutions:
Check credentials:
Check network connectivity:
Check permissions:
Database user has write permissions
S3 IAM role allows PutObject
vCon Not Found
Symptoms:
404 when fetching vCon
"vCon not found" errors
Diagnosis:
Solutions:
vCon expired from Redis:
Check
VCON_REDIS_EXPIRYsettingvCon should be auto-fetched from storage if configured
vCon never stored:
Check chain has storage backends configured
Check storage write didn't fail
Wrong UUID format:
Ensure UUID includes hyphens
Check for typos
Configuration Issues
Configuration Not Loading
Symptoms:
Changes to config.yml not taking effect
Wrong settings being used
Solutions:
Check config file path:
Validate YAML syntax:
Restart workers:
Use API to update:
Import/Module Not Found
Symptoms:
"ModuleNotFoundError" in logs
Dynamic imports failing
Solutions:
Check imports section:
Check pip_name format:
Check network access:
Container can reach PyPI/GitHub
No firewall blocking
Performance Issues
Slow Processing
Symptoms:
High processing times
Queue backing up
Solutions:
Scale workers:
Use sampling:
Use faster models:
Skip unnecessary links:
Memory Issues
Symptoms:
OOM errors
Container restarts
Solutions:
Increase container memory:
Configure Redis maxmemory:
Use diet link to reduce vCon size:
Getting Help
If you can't resolve an issue:
Check logs carefully - Most errors have clear messages
Search GitHub issues - Someone may have had the same problem
Create a GitHub issue with:
Conserver version
Configuration (sanitized)
Error messages
Steps to reproduce
Last updated
Was this helpful?