Troubleshooting playbooks
This section covers common operational issues and how to diagnose them. Each playbook walks through the symptoms, likely causes, and the steps to resolve the issue.
Playbooks
- 503 Service Unavailable — upstream health, circuit breaker, and connection issues.
- 429 Too Many Requests — rate limiting, quotas, and AI token budgets.
- Config reload failure — validation errors and hot-reload issues.
- High latency — upstream latency, connection pool exhaustion, and queueing.
- AI request failures — provider errors, translation errors, and AI-specific issues.
- mTLS handshake failures — certificate issues, trust chain, and client cert validation.
General debugging approach
- Check the admin API —
GET /healthandGET /statson the admin listener show the gateway's view of upstream health and active connections. - Check the access log — every request is logged with the request id, route, upstream, status, and duration. Filter by the failing request's correlation id.
- Use
dwara explain— thedwara explain <method> <path>command traces a request through the full decision path, showing which route matched, which policies applied, and which upstream would be selected. See dwara explain. - Check metrics — the gateway exports Prometheus-compatible metrics on the admin listener. Look for spikes in error rates, latency histograms, and breaker state.
- Check the config —
dwara validatechecks the config for validation errors without applying it.dwara diffshows what changed between the current and desired config.