[GH-ISSUE #15274] Qdrant Error – Index required for metadata.hash in Open-WebUI #88258

Closed
opened 2026-05-15 12:45:32 -05:00 by GiteaMirror · 5 comments
Owner

Originally created by @mkagit on GitHub (Jun 25, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15274

We're unable to reproduce with the description you've provided, could you provide the document you've used as well to rule out the document issue?

Originally posted by @tjbck in #14960


Description

When uploading a PDF document via Open-WebUI with Qdrant as the vector store (in multitenancy mode), I encounter a 400 Bad Request error during the document saving process. The issue stems from Qdrant requiring an index on the payload field metadata.hash, which is missing by default.

Error Message

Bad request: Index required but not found for "metadata.hash" of one of the following types: [keyword].
Help: Create an index for this key or use a different filter.

This causes the entire document processing workflow to fail with:

qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 400 (Bad Request)

Logs (excerpt)

openwebui | ERROR | open_webui.routers.retrieval:process_file - Unexpected Response: 400 (Bad Request)
openwebui | ERROR | qdrant_client.http.exceptions.UnexpectedResponse: ...
openwebui | b'{"status":{"error":"Bad request: Index required but not found for \\"metadata.hash\\"...'

Expected Behavior

The document should be successfully parsed, indexed, and stored in Qdrant without manual schema intervention.

Steps to Reproduce

  1. Deploy Open-WebUI with Qdrant backend.
  2. Enable multitenancy.
  3. Upload a PDF document.
  4. Observe the error and failure to process the file.
Originally created by @mkagit on GitHub (Jun 25, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/15274 > We're unable to reproduce with the description you've provided, could you provide the document you've used as well to rule out the document issue? _Originally posted by @tjbck in [#14960](https://github.com/open-webui/open-webui/issues/14960#issuecomment-2979878680)_ --- ### Description When uploading a PDF document via Open-WebUI with Qdrant as the vector store (in multitenancy mode), I encounter a 400 Bad Request error during the document saving process. The issue stems from Qdrant requiring an index on the payload field `metadata.hash`, which is missing by default. ### Error Message ``` Bad request: Index required but not found for "metadata.hash" of one of the following types: [keyword]. Help: Create an index for this key or use a different filter. ``` This causes the entire document processing workflow to fail with: ``` qdrant_client.http.exceptions.UnexpectedResponse: Unexpected Response: 400 (Bad Request) ``` ### Logs (excerpt) ``` openwebui | ERROR | open_webui.routers.retrieval:process_file - Unexpected Response: 400 (Bad Request) openwebui | ERROR | qdrant_client.http.exceptions.UnexpectedResponse: ... openwebui | b'{"status":{"error":"Bad request: Index required but not found for \\"metadata.hash\\"...' ``` ### Expected Behavior The document should be successfully parsed, indexed, and stored in Qdrant without manual schema intervention. ### Steps to Reproduce 1. Deploy Open-WebUI with Qdrant backend. 2. Enable multitenancy. 3. Upload a PDF document. 4. Observe the error and failure to process the file.
Author
Owner

@guenhter commented on GitHub (Jun 26, 2025):

I get a similar error:

2025-06-26 14:21:24.325 | INFO     | httpx._client:_send_single_request:1025 - HTTP Request: POST https://....qdrant.io:6333/collections/open-webui_files/points/query "HTTP/1.1 400 Bad Request" - {}
2025-06-26 14:21:24.325 | WARNING  | open_webui.retrieval.vector.dbs.qdrant_multitenancy:query:497 - Unexpected Qdrant error during query: Bad request: Index required but not found for "metadata.file_id" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter. - {}
2025-06-26 14:21:24.325 | ERROR    | open_webui.routers.retrieval:process_file:1457 - Unexpected Response: 400 (Bad Request)
Raw response content:
b'{"status":{"error":"Bad request: Index required but not found for \\"metadata.file_id\\" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter." ...' - {}
Traceback (most recent call last):

But this only happens with the qdrant.io instane. If I spinup qdrant locally, I don't have any issue...

<!-- gh-comment-id:3008712431 --> @guenhter commented on GitHub (Jun 26, 2025): I get a similar error: ``` 2025-06-26 14:21:24.325 | INFO | httpx._client:_send_single_request:1025 - HTTP Request: POST https://....qdrant.io:6333/collections/open-webui_files/points/query "HTTP/1.1 400 Bad Request" - {} 2025-06-26 14:21:24.325 | WARNING | open_webui.retrieval.vector.dbs.qdrant_multitenancy:query:497 - Unexpected Qdrant error during query: Bad request: Index required but not found for "metadata.file_id" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter. - {} 2025-06-26 14:21:24.325 | ERROR | open_webui.routers.retrieval:process_file:1457 - Unexpected Response: 400 (Bad Request) Raw response content: b'{"status":{"error":"Bad request: Index required but not found for \\"metadata.file_id\\" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter." ...' - {} Traceback (most recent call last): ``` But this only happens with the qdrant.io instane. If I spinup qdrant locally, I don't have any issue...
Author
Owner

@mkagit commented on GitHub (Jun 26, 2025):

In our tests, local and cloud Qdrant performance are almost the same,
however it's slower than local pgvector. I think because OpenWebUI isn't
optimized for Qdrant. I was hopping for qdrant_multitenancy to deliver
better performance

Em quinta-feira, 26 de junho de 2025, Günther Grill <
@.***> escreveu:

guenhter left a comment (open-webui/open-webui#15274)
https://github.com/open-webui/open-webui/issues/15274#issuecomment-3008712431

I get a similar error:

2025-06-26 14:21:24.325 | INFO | httpx._client:_send_single_request:1025 - HTTP Request: POST https://....qdrant.io:6333/collections/open-webui_files/points/query "HTTP/1.1 400 Bad Request" - {}
2025-06-26 14:21:24.325 | WARNING | open_webui.retrieval.vector.dbs.qdrant_multitenancy:query:497 - Unexpected Qdrant error during query: Bad request: Index required but not found for "metadata.file_id" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter. - {}
2025-06-26 14:21:24.325 | ERROR | open_webui.routers.retrieval:process_file:1457 - Unexpected Response: 400 (Bad Request)
Raw response content:
b'{"status":{"error":"Bad request: Index required but not found for \"metadata.file_id\" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter." ...' - {}
Traceback (most recent call last):

But this only happens with the qdrant.io instane. If I spinup qdrant
locally, I don't have any issue...


Reply to this email directly, view it on GitHub
https://github.com/open-webui/open-webui/issues/15274#issuecomment-3008712431,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APRK7SHFQOCAT3X5NYFHL533FQACDAVCNFSM6AAAAACABYGZGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTAMBYG4YTENBTGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

<!-- gh-comment-id:3008801460 --> @mkagit commented on GitHub (Jun 26, 2025): In our tests, local and cloud Qdrant performance are almost the same, however it's slower than local pgvector. I think because OpenWebUI isn't optimized for Qdrant. I was hopping for qdrant_multitenancy to deliver better performance Em quinta-feira, 26 de junho de 2025, Günther Grill < ***@***.***> escreveu: > *guenhter* left a comment (open-webui/open-webui#15274) > <https://github.com/open-webui/open-webui/issues/15274#issuecomment-3008712431> > > I get a similar error: > > 2025-06-26 14:21:24.325 | INFO | httpx._client:_send_single_request:1025 - HTTP Request: POST https://....qdrant.io:6333/collections/open-webui_files/points/query "HTTP/1.1 400 Bad Request" - {} > 2025-06-26 14:21:24.325 | WARNING | open_webui.retrieval.vector.dbs.qdrant_multitenancy:query:497 - Unexpected Qdrant error during query: Bad request: Index required but not found for "metadata.file_id" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter. - {} > 2025-06-26 14:21:24.325 | ERROR | open_webui.routers.retrieval:process_file:1457 - Unexpected Response: 400 (Bad Request) > Raw response content: > b'{"status":{"error":"Bad request: Index required but not found for \\"metadata.file_id\\" of one of the following types: [uuid, keyword]. Help: Create an index for this key or use a different filter." ...' - {} > Traceback (most recent call last): > > But this only happens with the qdrant.io instane. If I spinup qdrant > locally, I don't have any issue... > > — > Reply to this email directly, view it on GitHub > <https://github.com/open-webui/open-webui/issues/15274#issuecomment-3008712431>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/APRK7SHFQOCAT3X5NYFHL533FQACDAVCNFSM6AAAAACABYGZGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTAMBYG4YTENBTGE> > . > You are receiving this because you authored the thread.Message ID: > ***@***.***> >
Author
Owner

@guenhter commented on GitHub (Jun 26, 2025):

The problem of the original issue (and probably of this as well) can be reproduces with this enviornment variables (in docker) turned on


      - QDRANT__STORAGE__COLLECTION__STRICT_MODE__ENABLED=true
      - QDRANT__STORAGE__COLLECTION__STRICT_MODE__UNINDEXED_FILTERING_RETRIEVE=false
      - QDRANT__STORAGE__COLLECTION__STRICT_MODE__UNINDEXED_FILTERING_UPDATE=false

Those are good defaults (also turned on when the qdrant.io cluster is used) because they avoid to access the DB with inperformant queries.

<!-- gh-comment-id:3008844636 --> @guenhter commented on GitHub (Jun 26, 2025): The problem of the original issue (and probably of this as well) can be reproduces with this enviornment variables (in docker) turned on ``` - QDRANT__STORAGE__COLLECTION__STRICT_MODE__ENABLED=true - QDRANT__STORAGE__COLLECTION__STRICT_MODE__UNINDEXED_FILTERING_RETRIEVE=false - QDRANT__STORAGE__COLLECTION__STRICT_MODE__UNINDEXED_FILTERING_UPDATE=false ``` Those are good defaults (also turned on when the qdrant.io cluster is used) because they avoid to access the DB with inperformant queries.
Author
Owner

@guenhter commented on GitHub (Jun 27, 2025):

IMO the best solution would be, to respect what qdrant.io is doing, and create the corresponding indices.
I'll prepare a PR next week for this.

Currently, there is a big refactoring ongoing with https://github.com/open-webui/open-webui/pull/15289 which should be coordinated with.

<!-- gh-comment-id:3013186074 --> @guenhter commented on GitHub (Jun 27, 2025): IMO the best solution would be, to respect what qdrant.io is doing, and create the corresponding indices. I'll prepare a PR next week for this. Currently, there is a big refactoring ongoing with https://github.com/open-webui/open-webui/pull/15289 which should be coordinated with.
Author
Owner

@Anush008 commented on GitHub (Jul 10, 2025):

This is resolved with https://github.com/open-webui/open-webui/pull/15389.

<!-- gh-comment-id:3058635213 --> @Anush008 commented on GitHub (Jul 10, 2025): This is resolved with https://github.com/open-webui/open-webui/pull/15389.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#88258