mirror of
https://github.com/open-webui/open-webui.git
synced 2026-03-10 07:43:10 -05:00
issue: RAG Hybrid Search still broken #5829
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dotmobo on GitHub (Jul 21, 2025).
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.18
Ollama Version (if applicable)
No response
Operating System
Ubuntu 22.04
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
Hybrid search with embedding and reranking should get data from the knowledge database of the model.
Broken since v0.6.16
Actual Behavior
Since v0.6.16, the hybrid search functionality (using an OpenAI embedding model and an OpenAI reranking model) has stopped working.
In v0.6.17, I saw in the changelog: "Hybrid Search Functionality Restored". But it still doesn't work for me.
Still broken in v0.6.18.
If I roll back to v0.6.15, it works fine.
Steps to Reproduce
Create a knowledge base
Create a model and add the knowledge base
Use the following RAG parameters
Ask a question to the model
Logs & Screenshots
I can see in the logs :
2025-07-21 08:55:49.781 | INFO | httpx._client:_send_single_request:1025 - HTTP Request: GET http://192.168.0.10:6333/collections/open-webui_knowledge/exists "HTTP/1.1 200 OK" - {}
2025-07-21 08:55:49.782 | INFO | open_webui.retrieval.utils:query_collection_with_hybrid_search:352 - Starting hybrid search for 1 query in 1 collection... - {}
2025-07-21 08:55:49.839 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 130.79.202.31:0 - "POST /api/chat/completions HTTP/1.1" 200 - {}
But no documents are retrieved.
Additional Information
No response
@tjbck commented on GitHub (Jul 21, 2025):
We're unable to reproduce, could you share more backend logs with
GLOBAL_LOG_LEVELset todebug?@dotmobo commented on GitHub (Jul 21, 2025):
Sûre
@dotmobo commented on GitHub (Jul 21, 2025):
The anwser in v0.6.18 :
The same question but in v0.6.15 :
You can see the mension of rust_book.pdf
@dotmobo commented on GitHub (Jul 21, 2025):
My config document screen :
I use a LiteLLM gateway to serve embedding and reranking models with an openai api compatible
@dotmobo commented on GitHub (Jul 21, 2025):
The following lines are present in the v0.6.15 log and missing in the v0.6.18 log :
@Abdelrahman1993 commented on GitHub (Jul 21, 2025):
I'm having the same problem since v0.6.16. Just upgraded to v0.6.18 and the issue is still there.
Open WebUi logs
Qdrant DB Logs
@tjbck commented on GitHub (Jul 21, 2025):
@dotmobo are you using
qdrantas well?@dotmobo commented on GitHub (Jul 21, 2025):
Yes i use qdrant
@cyberclaw03 commented on GitHub (Jul 23, 2025):
Since upgrading to v0.6.18 from v0.6.14, I am having this very issue. I am also using qdrant. Prior to the upgrade, RAG worked perfectly.
@cyberclaw03 commented on GitHub (Jul 23, 2025):
I managed to fix it on my end by deleting and recreating my Knowledge Bases. I also set the "ENABLE_QDRANT_MULTITENANCY_MODE" environment variable to "true," which may have helped.
At that point, though, I ran into a totally different issue. Tika was no longer working because of a recent Docker image update. I rolled back to an older version of Ticka and now everything works great.
@MacJedi42 commented on GitHub (Jul 24, 2025):
Have the same issue since upgrading to 0.6.18.
@dotmobo commented on GitHub (Jul 24, 2025):
Thanks for the tips @cyberclaw03.
I clicked on the "Reindex all existing documents" button in the administrator page and it works again with the 0.6.18 @tjbck
.
@alexdjachenko commented on GitHub (Jul 24, 2025):
I have the same issue: bare KB works well, but in hybrid mode no one documents passed to LLM at all (not KB, not keywords). 0.6.18.
P.S I use internal Sintence Transformer
@MarceloCogo commented on GitHub (Jul 24, 2025):
I have the same issue using Hybrid Search. 0.6.18
@tjbck commented on GitHub (Jul 24, 2025):
Most likely related to: https://github.com/open-webui/open-webui/pull/15289
@Anush008 could you chime in?
@Anush008 commented on GitHub (Jul 24, 2025):
Hey all. Does this resolve the issue for you?
@alexdjachenko commented on GitHub (Jul 24, 2025):
Nop, I use intertal sintence transformet, not Qdrant.
KB works without reindexing. It seems, the trouble in a mixing results.
2025-07-24 16:57:21.398 | DEBUG | open_webui.models.tags:delete_tag_by_name_and_user_id:101 - res: 1 - {}
2025-07-24 16:57:21.447 | INFO | open_webui.models.chats:count_chats_by_tag_name_and_user_id:871 - Count of chats for tag 'user_interface_customization': 0 - {}
2025-07-24 16:57:21.449 | DEBUG | open_webui.models.tags:delete_tag_by_name_and_user_id:101 - res: 1 - {}
2025-07-24 16:57:21.496 | INFO | open_webui.models.chats:count_chats_by_tag_name_and_user_id:871 - Count of chats for tag 'technology': 15 - {}
2025-07-24 16:57:21.539 | INFO | open_webui.models.chats:count_chats_by_tag_name_and_user_id:871 - Count of chats for tag 'assistive_technologies': 0 - {}
2025-07-24 16:57:21.540 | DEBUG | open_webui.models.tags:delete_tag_by_name_and_user_id:101 - res: 1 - {}
2025-07-24 16:57:21.587 | INFO | open_webui.models.chats:count_chats_by_tag_name_and_user_id:871 - Count of chats for tag 'web_accessibility': 1 - {}
2025-07-24 16:57:21.629 | INFO | open_webui.models.chats:count_chats_by_tag_name_and_user_id:871 - Count of chats for tag 'education': 8 - {}
@sendmebits commented on GitHub (Jul 24, 2025):
I'm seeing this as well. Here are the specifics:
Below is the log line I see when it happens:
@sendmebits commented on GitHub (Jul 24, 2025):
Looking at other posters I think the common factor for impacted folks is OpenAI embeddings and External re-ranker, does that hold true with others impacted by this issue?
Example from dotmobo:
@tjbck commented on GitHub (Jul 24, 2025):
@sendmebits the logs seem to indicate
collection_resultsdid not return any values from the vector search, could you confirm?@tjbck commented on GitHub (Jul 24, 2025):
Definitely cannot reproduce any of the issues mentioned here from our end, hybrid search works as intended in our testing setup. Could anyone provide a more detailed information on the exact configuration you're using, as well as the file being uploaded?
@sendmebits commented on GitHub (Jul 24, 2025):
It's any file, to simplify the testing I've just been using a simple TEST.txt file with a paragraph of plain text in it.
For configuration - everything is on a single Docker host, single same Docker network, not a stack, separate containers.
It looks like its getting a 404 - '404 Client Error: Not Found for url: http://litellm:4000/v1'
This config works on .15 but not on .16:
@tjbck commented on GitHub (Jul 24, 2025):
@sendmebits could you confirm http://litellm:4000/v1 is reachable and both
cohere.embed-english-v3,amazon.rerank-v1:0are present and accessible via api ?@sendmebits commented on GitHub (Jul 24, 2025):
If I change the Reranking Engine URL to this 'http://litellm:4000/v1/rerank' it seems to be able to hybrid search the text documents now!
Note: This works just fine as http://litellm:4000/v1 on v0.6.15
@tjbck commented on GitHub (Jul 24, 2025):
@sendmebits strange, only
http://litellm:4000/v1/rerankshould've been supported if i'm not mistaken. Could you share your logs for 0.6.15?@sendmebits commented on GitHub (Jul 24, 2025):
Here are logs for 0.6.15. I do still see the 404, but it works for some reason... there are some other errors ... not sure what they mean though...
@tjbck commented on GitHub (Jul 24, 2025):
@sendmebits the logs indicate it was never configured correctly in the first place, and you weren't actually using the external reranker, this seems unrelated to the issue(s) being discussed here.
@aldodelgado commented on GitHub (Jul 24, 2025):
This solved the issue for me. I'm also using qdrant on open-webui version 0.6.18.
@zbejas commented on GitHub (Jul 30, 2025):
I have the same issue. I use Ollama models for reranking, and RAG only works if I disable hybrid search. I have tried swapping out models, and reindexing, but nothing works with hybrid search enabled. The only change since it was working as intended was an update to the OpenWebUI.
@rgaricano commented on GitHub (Jul 30, 2025):
ollama, although they are working on it, currently it does not support rerank, the external reranker is not the model, it is the process to obtain an rerankered dict list, the model is to indicate the model to use.
@onestardao commented on GitHub (Aug 1, 2025):
@dotmobo
hey just saw this —
love that you’re pushing for hybrid retrieval (vector + fulltext + metadata).
but let me point out the silent killer that keeps wrecking these setups even when everything "looks fine" on paper:
!!! what actually breaks:
You do hit the right file,
you do run fulltext,
you do combine metadata...
...but the retrieved chunk drifts semantically from what the model thinks it retrieved.
→ So now your LLM is confidently hallucinating based on a chunk that’s technically “relevant” but logically off.
!!!! this maps exactly to what I call:
No.1 — semantic boundary drift
No.5 — cosine says “yes”, logic says “hell no”
No.2 — downstream collapse due to context misalignment
You might not see the problem until the reasoning step gives you a subtle wrong answer that nobody catches.
i got tired of fixing this again and again across projects —
so I ended up building a full failure map + open-sourced all the logic behind it:
👉 WFGY ProblemMap (MIT license)
it’s not a product. it’s a diagnosis system.
you don’t have to use it — just steal what’s useful.
also, not to flex but...
!!!! the author of Tesseract.js starred the project himself.
(yes, that one. the OCR guy. you can see WFGY on top1 now)
so if you’ve ever thought
“this RAG setup should work, but somehow it keeps subtly screwing up”
you’re not crazy. it’s a thing.
and I’ve mapped out exactly where and why it breaks.
if you’re curious, hit me up. otherwise, all yours — wild MIT license, no tracking, no weirdness.
we just want RAG to stop hallucinating, right?
@le-patenteux commented on GitHub (Aug 1, 2025):
Same issue for me. With local Ollama backend for embedding/retrieval
Reindexing : Does not work
Switching-off hybrid search: Works
Reverting to v0.6.15: Everything works fine again.
The issue is clearly with retrieval. on 0.6.16 +
Setup:
Default open-webui vector database (chromaDB I think?)
Ollama server is reachable, has no issue
Embed: bge-m3 (tried multiple)
Reranker: linux6200/bge-reranker-v2-m3
@le-patenteux commented on GitHub (Aug 11, 2025):
I just came back from vacations and updated from 0.6.15 to 0.6.21 (a fix for hybrid search was added in 0.6.19 if I am reading correctly)
Hybrid search with Ollama backend still broken for me:
See previous post for more details on my setup. I confirm it is running on chromaDB
@onestardao commented on GitHub (Aug 11, 2025):
yo @patentsaur — just a quick heads-up that might save you a ton of time.
you can grab our TXTOS pack (MIT license) and ask your AI directly:
the math will kick in on the semantic layer — no infra changes needed.
think of it like a semantic firewall: the fix runs before the model ever queries or ranks.
lot of folks who tried this were surprised how simple it was
just drop in, ask the right way, and suddenly the model stops doing dumb things.
also, this catches not just current issues but a few nasty bugs you'll likely hit later (like pre-deploy drift or index mismatch).
worth a shot if you’re stuck in that “everything looks fine but still breaks” loop ^____^
Problem Map again
https://github.com/onestardao/WFGY/blob/main/ProblemMap/README.md
@sthemeow commented on GitHub (Aug 12, 2025):
Same issue here. Happens with 0.6.18 and 0.6.22. Downgraded to 0.6.15 and it works fine
@sbutler2901 commented on GitHub (Aug 16, 2025):
Same for me on v0.6.22
Similar to: https://github.com/open-webui/open-webui/issues/16228#issuecomment-3146579709:
@rgaricano commented on GitHub (Aug 16, 2025):
For reference:
438e5d966f/backend/open_webui/retrieval/utils.py (L962-L968)fix
@sbutler2901 commented on GitHub (Aug 16, 2025):
Hey @rgaricano, unfortunately that does not fix the issue. For me, this leads to the
docs_with_scoresvariable being undefined:Trying with:
Results in:
@rgaricano commented on GitHub (Aug 17, 2025):
@sbutler2901
try just returning same input documents:
@tjbck commented on GitHub (Aug 21, 2025):
@sbutler2901
'500 Server Error: Internal Server Error for url: http://127.0.0.1:9292/v1/rerank'looks like your rerank engine isn't reachable, have you ruled that out first?