Problem
Currently, when a request to Qdrant fails (e.g., due to network issues or timeouts), the client does not retry automatically.
This can cause instability in production pipelines, especially during large-scale data ingestion or when using Qdrant in RAG systems.
Proposed Solution
Introduce an optional retry mechanism with exponential backoff:
- Configurable number of retries (default: 3)
- Backoff strategy (e.g., exponential with jitter)
- Retry only for transient errors (timeouts, connection issues)
Example:
client = QdrantClient(
url="...",
retry_config={
"max_retries": 3,
"backoff_factor": 0.5
}
)
Why this is useful
- Improves robustness in production environments
- Reduces need for users to implement custom retry logic
- Especially useful for batch uploads and embedding pipelines
Alternatives considered
- Users implementing their own retry logic externally (less convenient and inconsistent)
Additional context
I’d be happy to work on implementing this feature if it aligns with the project direction.
Problem
Currently, when a request to Qdrant fails (e.g., due to network issues or timeouts), the client does not retry automatically.
This can cause instability in production pipelines, especially during large-scale data ingestion or when using Qdrant in RAG systems.
Proposed Solution
Introduce an optional retry mechanism with exponential backoff:
Example:
client = QdrantClient(
url="...",
retry_config={
"max_retries": 3,
"backoff_factor": 0.5
}
)
Why this is useful
Alternatives considered
Additional context
I’d be happy to work on implementing this feature if it aligns with the project direction.