KB-12A0
Qdrant Timeout Fix Report 2026-03-31
2 min read Revision 1
reportqdrantfixtimeoutdeploy
Qdrant Timeout Fix Report — 2026-03-31
PRs: #335 (timeout 15→3 + health re-probe), #336 (timeout 3→1 + deploy warm-up) Status: DEPLOYED + VERIFIED
Changes
| Fix | Before | After | File |
|---|---|---|---|
| Qdrant timeout | 15s | 1s | vector_store.py:137 |
| Health re-probe | Startup only (stale) | Every 30s cache TTL | server.py (root endpoint) |
| Deploy warm-up | sleep 45s, check 1x | Loop 10s, max 120s | deploy-vps.yml |
Verification Results (Post-Deploy)
Health Check 5/5
| Test | Status | Qdrant | Qdrant Latency | PG Latency | Docs |
|---|---|---|---|---|---|
| 1-5 | healthy | ok | 9.2ms | 0.6ms | 798 |
Search Test 5/5
| Test | Hits | Latency |
|---|---|---|
| 1 | 5 | 4,296ms (cold) |
| 2 | 5 | 397ms |
| 3 | 5 | 478ms |
| 4 | 5 | 410ms |
| 5 | 5 | 397ms |
Before vs After
| Metric | Before | After | Improvement |
|---|---|---|---|
| Health status | degraded (stale) | healthy | Fixed |
| Qdrant latency (health) | 753.4ms (cached) | 9.2ms (live) | 82x |
| Search latency | 6,000-16,000ms | 397-478ms | 15-33x |
| Worst case retry | 3x15s = 45s | 3x1s = 3s | 15x |
| Deploy success | FAIL (45s timeout) | SUCCESS (loop 120s) | Fixed |
CI Status
- PR #335: All checks pass, merged
- PR #336: 20/20 checks pass, merged
- Deploy: SUCCESS (warm-up loop worked)
Conclusion
All 3 fixes deployed and verified. GPT Actions should no longer timeout (worst case 3s retry vs 30s GPT timeout). Health endpoint now shows live Qdrant status instead of stale startup value.