The Vectorize / Qdrant client is wrapped in a circuit breaker so a vector-store outage degrades gracefully instead of failing the visitor turn.

What the breaker does

Configuration

Env varDefaultWhat it does
VECTOR_CIRCUIT_THRESHOLD5Errors needed to trip the breaker.
VECTOR_CIRCUIT_WINDOW60Sliding-window seconds for the failure counter.
VECTOR_CIRCUIT_COOLDOWN60Seconds the breaker stays open before the next probe.

Cache backend is whatever cache.default resolves to. On a Redis production stack the breaker state is shared across workers, so an outage trips for the whole cluster at once instead of being re-discovered per worker.

What an open circuit looks like

From laravel.log:

vector.circuit_open  {"client":"vectorize","count":5,"cooldown":60,"error":"Cloudflare 502 Bad Gateway"}

The widget continues to serve responses, just without retrieval. Once Vectorize recovers, the breaker auto-closes on the next successful probe — no operator action required.

When to tune the values