From af9622d31c2f054197c2c845c73a193ff2d3034d Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Tue, 11 Aug 2026 22:15:04 -0600 Subject: [PATCH] fix(rag): stop routing Qdrant requests through an ambient proxy make_client used a bare reqwest builder, which honours whatever proxy the environment advertises. That made it the only HTTP client in Coyote to do so: utils::set_proxy discards ambient settings and applies only Coyote's configured proxy, and every other client goes through it. The symptom is that a perfectly healthy Qdrant is unreachable and the error belongs to the interposing proxy, not the store, so it reads as a Coyote or Qdrant fault. Locally an installed Socket Firewall answered `.rag attach` against 127.0.0.1:6333 with an HTML 'Connection Required' page and HTTP 405. Both #[ignore]d live tests now pass against a real Qdrant; they failed with that same 405 before this change, which is the first time either has run green. A remote store that genuinely needs Coyote's configured proxy is a follow-up: that means threading the proxy config into the provider. --- src/rag/providers/qdrant.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rag/providers/qdrant.rs b/src/rag/providers/qdrant.rs index b77d2cb..515fb6f 100644 --- a/src/rag/providers/qdrant.rs +++ b/src/rag/providers/qdrant.rs @@ -193,6 +193,11 @@ impl QdrantProvider { } Client::builder() .default_headers(headers) + // reqwest picks up ambient proxy settings by default, which routes even + // a loopback Qdrant through whatever proxy the environment dictates and + // fails with that proxy's error rather than Qdrant's. Every other client + // in Coyote discards them the same way, in `utils::set_proxy`. + .no_proxy() .build() .context("Failed to build reqwest client") }