[GH-ISSUE #17046] issue: Bug: Hybrid Search causes AttributeError and Qdrant timeouts in v0.6.26 #18151

Closed
opened 2026-04-20 00:20:45 -05:00 by GiteaMirror · 5 comments
Owner

Originally created by @galvanoid on GitHub (Aug 29, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17046

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

0.6.26

Ollama Version (if applicable)

0.11.8

Operating System

Ubuntu 24.04

Browser (if applicable)

No response

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

When enabling Hybrid Search, queries should return ranked results normally without backend errors.

Actual Behavior

When Reranking is enabled:

Queries intermittently fail with:

AttributeError: 'list' object has no attribute 'documents' (when BM25=0)

If BM25 > 0 queries fail with Qdrant timeouts or 500 Internal Server Error :

qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 500 (Internal Server Error)
Raw response content:
{"status":{"error":"Service internal error: ... Timeout error: Operation 'retrieve' timed out after 6 seconds"}}

I set QDRANT_TIMEOUT = 100, but no luck (in previous versions, set to 50 works ok).

If I disable Reranking, everything works perfectly and documents are retrieved without errors.

Steps to Reproduce

Fresh install of Ubuntu 22.04 server.

Install Docker v24.0.5 and start the service.

Run Open WebUI with (f.e):

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:latest

Connect to Ollama running locally (http://host.docker.internal:11434).

Upload several PDF documents (e.g. Spanish BOE legislation).

Go to Admin → Documents → Retrieval and enable Hybrid Search and Reranking (model: qwen3:1.7b).

Ask a question like:

¿Cuáles son los requisitos para la obtención de los derechos de uso y habitación en España?

Observe backend logs — sometimes AttributeError, sometimes Qdrant timeout.

Disable Reranking → issue disappears.

Logs & Screenshots

AttributeError

if not collection_result.documents[0]:
AttributeError: 'list' object has no attribute 'documents'

Qdrant Timeout

qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 500 (Internal Server Error)
Raw response content:
{"status":{"error":"Service internal error: 1 of 1 read operations failed:\n Timeout error: Operation 'retrieve' ti

Additional Information

Vector DB: Qdrant (latest docker image, default config).

Happens consistently in v0.6.26. In previous versions it worked perfectly.

Might be related to recent Hybrid Search changes (handling empty lists, reranker integration).

Originally created by @galvanoid on GitHub (Aug 29, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/17046 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version 0.6.26 ### Ollama Version (if applicable) 0.11.8 ### Operating System Ubuntu 24.04 ### Browser (if applicable) _No response_ ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior When enabling Hybrid Search, queries should return ranked results normally without backend errors. ### Actual Behavior When Reranking is enabled: Queries intermittently fail with: AttributeError: 'list' object has no attribute 'documents' (when BM25=0) If BM25 > 0 queries fail with Qdrant timeouts or 500 Internal Server Error : qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 500 (Internal Server Error) Raw response content: {"status":{"error":"Service internal error: ... Timeout error: Operation 'retrieve' timed out after 6 seconds"}} I set QDRANT_TIMEOUT = 100, but no luck (in previous versions, set to 50 works ok). If I disable Reranking, everything works perfectly and documents are retrieved without errors. ### Steps to Reproduce Fresh install of Ubuntu 22.04 server. Install Docker v24.0.5 and start the service. Run Open WebUI with (f.e): docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:latest Connect to Ollama running locally (http://host.docker.internal:11434). Upload several PDF documents (e.g. Spanish BOE legislation). Go to Admin → Documents → Retrieval and enable Hybrid Search and Reranking (model: qwen3:1.7b). Ask a question like: ¿Cuáles son los requisitos para la obtención de los derechos de uso y habitación en España? Observe backend logs — sometimes AttributeError, sometimes Qdrant timeout. Disable Reranking → issue disappears. ### Logs & Screenshots AttributeError if not collection_result.documents[0]: AttributeError: 'list' object has no attribute 'documents' Qdrant Timeout qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 500 (Internal Server Error) Raw response content: {"status":{"error":"Service internal error: 1 of 1 read operations failed:\n Timeout error: Operation 'retrieve' ti ### Additional Information Vector DB: Qdrant (latest docker image, default config). Happens consistently in v0.6.26. In previous versions it worked perfectly. Might be related to recent Hybrid Search changes (handling empty lists, reranker integration).
GiteaMirror added the bug label 2026-04-20 00:20:45 -05:00
Author
Owner

@galvanoid commented on GitHub (Aug 29, 2025):

Update:

After more testing on v0.6.26:

The original AttributeError: 'list' object has no attribute 'documents' still occurs when BM25 = 0 (pure).

If I set BM25 > 0 (e.g. 0.5 → balanced lexical + semantic), the error does not appear.

With BM25 > 0 I initially hit Qdrant timeouts, but increasing the Qdrant client timeout (more) solved that issue.

The remaining bug is specific to BM25 = 0: Hybrid Search still crashes with AttributeError.

<!-- gh-comment-id:3238224245 --> @galvanoid commented on GitHub (Aug 29, 2025): Update: After more testing on v0.6.26: The original AttributeError: 'list' object has no attribute 'documents' still occurs when BM25 = 0 (pure). If I set BM25 > 0 (e.g. 0.5 → balanced lexical + semantic), the error does not appear. With BM25 > 0 I initially hit Qdrant timeouts, but increasing the Qdrant client timeout (more) solved that issue. The remaining bug is specific to BM25 = 0: Hybrid Search still crashes with AttributeError.
Author
Owner

@rgaricano commented on GitHub (Aug 29, 2025):

Do you have a more extensive log of the error?

Note: Rechecking also I show that the lexical - semantic terms are inverted, 0 have to be semantic and 1 lexical
I made a PR to fix it.

<!-- gh-comment-id:3238729492 --> @rgaricano commented on GitHub (Aug 29, 2025): Do you have a more extensive log of the error? Note: Rechecking also I show that **the lexical - semantic terms are inverted, 0 have to be semantic and 1 lexical** I made a PR to fix it.
Author
Owner

@galvanoid commented on GitHub (Aug 30, 2025):

Do you have a more extensive log of the error?

Note: Rechecking also I show that the lexical - semantic terms are inverted, 0 have to be semantic and 1 lexical I made a PR to fix it.

└ <concurrent.futures.thread._WorkItem object at 0x...>

File "/app/backend/open_webui/retrieval/utils.py", line 368, in process_query
result = query_doc_with_hybrid_search(
└ <function query_doc_with_hybrid_search at 0x...>
File "/app/backend/open_webui/retrieval/utils.py", line 198, in query_doc_with_hybrid_search
raise e
File "/app/backend/open_webui/retrieval/utils.py", line 127, in query_doc_with_hybrid_search
if not collection_result.documents[0]:
└ []
AttributeError: 'list' object has no attribute 'documents'
2025-08-29 19:08:16.932 | ERROR | open_webui.retrieval.utils:query_doc_with_hybrid_search:197 - Error querying doc [DOC_ID] with hybrid search: 'list' object has no attribute 'documents'
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
self._bootstrap_inner()
...
File "/app/backend/open_webui/retrieval/utils.py", line 368, in process_query
result = query_doc_with_hybrid_search(
└ <function query_doc_with_hybrid_search at 0x...>
File "/app/backend/open_webui/retrieval/utils.py", line 127, in query_doc_with_hybrid_search
if not collection_result.documents[0]:
└ []
AttributeError: 'list' object has no attribute 'documents'
2025-08-29 19:08:16.934 | ERROR | open_webui.retrieval.utils:process_query:381 - Error when querying the collection with hybrid_search: 'list' object has no attribute 'documents'
Traceback (most recent call last):
...
2025-08-29 19:08:18.673 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - [REDACTED_IP]:0 - "POST /api/chat/completions HTTP/1.1" 200

<!-- gh-comment-id:3239013009 --> @galvanoid commented on GitHub (Aug 30, 2025): > Do you have a more extensive log of the error? > > Note: Rechecking also I show that **the lexical - semantic terms are inverted, 0 have to be semantic and 1 lexical** I made a PR to fix it. └ <concurrent.futures.thread._WorkItem object at 0x...> > File "/app/backend/open_webui/retrieval/utils.py", line 368, in process_query result = query_doc_with_hybrid_search( └ <function query_doc_with_hybrid_search at 0x...> File "/app/backend/open_webui/retrieval/utils.py", line 198, in query_doc_with_hybrid_search raise e File "/app/backend/open_webui/retrieval/utils.py", line 127, in query_doc_with_hybrid_search if not collection_result.documents[0]: └ [] AttributeError: 'list' object has no attribute 'documents' 2025-08-29 19:08:16.932 | ERROR | open_webui.retrieval.utils:query_doc_with_hybrid_search:197 - Error querying doc [DOC_ID] with hybrid search: 'list' object has no attribute 'documents' Traceback (most recent call last): File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap self._bootstrap_inner() ... File "/app/backend/open_webui/retrieval/utils.py", line 368, in process_query result = query_doc_with_hybrid_search( └ <function query_doc_with_hybrid_search at 0x...> > File "/app/backend/open_webui/retrieval/utils.py", line 127, in query_doc_with_hybrid_search if not collection_result.documents[0]: └ [] AttributeError: 'list' object has no attribute 'documents' 2025-08-29 19:08:16.934 | ERROR | open_webui.retrieval.utils:process_query:381 - Error when querying the collection with hybrid_search: 'list' object has no attribute 'documents' Traceback (most recent call last): ... 2025-08-29 19:08:18.673 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - [REDACTED_IP]:0 - "POST /api/chat/completions HTTP/1.1" 200
Author
Owner

@apunkt commented on GitHub (Sep 19, 2025):

I experience with BM25 = 0.5 in 0.6.30 ->
'list' object has no attribute 'find'

<!-- gh-comment-id:3314070148 --> @apunkt commented on GitHub (Sep 19, 2025): I experience with BM25 = 0.5 in 0.6.30 -> `'list' object has no attribute 'find'`
Author
Owner

@rgaricano commented on GitHub (Sep 20, 2025):

Submitted a PR for prevent both issues.

<!-- gh-comment-id:3314932235 --> @rgaricano commented on GitHub (Sep 20, 2025): Submitted a PR for prevent both issues.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#18151