[GH-ISSUE #14432] issue: After update /api/v1/retrieval/query/collection return 400 #17251

Closed
opened 2026-04-19 22:57:28 -05:00 by GiteaMirror · 5 comments
Owner

Originally created by @SebaGue on GitHub (May 28, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/14432

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.11

Ollama Version (if applicable)

No response

Operating System

Debian 6.12.17-1

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

curl -X 'POST' \
  'http://localhost:3000/api/v1/retrieval/query/collection' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "collection_names": [
    "xxx"
  ],
  "query": "my query",
  "k": 0,
  "k_reranker": 0,
  "r": 0,
  "hybrid": true
}'

should return 200 as aspected

Actual Behavior

Same call now return 400

{
  "detail": "[ERROR: 'QueryCollectionsForm' object has no attribute 'hybrid_bm25_weight']"
}

Steps to Reproduce

1.Pulled new docker version ghcr.io/open-webui/open-webui:main
2.Up the service
3.With api create a new user with a group, create a model only for that user with private visibility, create a knowledge with some files and add this to the model
4.Make the api request to /api/v1/retrieval/query/collection
5.Get the response with 200 status code

Logs & Screenshots

Traceback (most recent call last):

      |   File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
      |     self._bootstrap_inner()
      |     │    └ <function Thread._bootstrap_inner at 0x7f3812128860>
      |     └ <WorkerThread(AnyIO worker thread, started 139876512274112)>
      |   File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
      |     self.run()
      |     │    └ <function WorkerThread.run at 0x7f37aafe7920>
      |     └ <WorkerThread(AnyIO worker thread, started 139876512274112)>
      |   File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
      |     result = context.run(func, *args)
      |              │       │   │      └ ()
      |              │       │   └ functools.partial(<function query_doc_handler at 0x..>, user=UserModel(id='xxx', n...
      |              │       └ <method 'run' of '_contextvars.Context' objects>
      |              └ <_contextvars.Context object at 0x7f37aaeeed80>
      | 
      | > File "/app/backend/open_webui/routers/retrieval.py", line 1809, in query_doc_handler
      |     if form_data.hybrid_bm25_weight
      |        └ QueryDocForm(collection_name='xxx', query="my query", k=0, k_reranke...
      | 
      |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 891, in __getattr__
      |     raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
      | 
      | AttributeError: 'QueryDocForm' object has no attribute 'hybrid_bm25_weight'

Additional Information

Maybe missing field into the BaseModel from backend/open_webui/routers/retrieval.py#L1831

class QueryCollectionsForm(BaseModel):
    collection_names: list[str]
    query: str
    k: Optional[int] = None
    k_reranker: Optional[int] = None
    r: Optional[float] = None
    hybrid: Optional[bool] = None
Originally created by @SebaGue on GitHub (May 28, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/14432 ### 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.11 ### Ollama Version (if applicable) _No response_ ### Operating System Debian 6.12.17-1 ### 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 ``` curl -X 'POST' \ 'http://localhost:3000/api/v1/retrieval/query/collection' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "collection_names": [ "xxx" ], "query": "my query", "k": 0, "k_reranker": 0, "r": 0, "hybrid": true }' ``` should return 200 as aspected ### Actual Behavior Same call now return 400 ``` { "detail": "[ERROR: 'QueryCollectionsForm' object has no attribute 'hybrid_bm25_weight']" } ``` ### Steps to Reproduce 1.Pulled new docker version `ghcr.io/open-webui/open-webui:main` 2.Up the service 3.With api create a new user with a group, create a model only for that user with private visibility, create a knowledge with some files and add this to the model 4.Make the api request to ` /api/v1/retrieval/query/collection` 5.Get the response with 200 status code ### Logs & Screenshots Traceback (most recent call last): | File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap | self._bootstrap_inner() | │ └ <function Thread._bootstrap_inner at 0x7f3812128860> | └ <WorkerThread(AnyIO worker thread, started 139876512274112)> | File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner | self.run() | │ └ <function WorkerThread.run at 0x7f37aafe7920> | └ <WorkerThread(AnyIO worker thread, started 139876512274112)> | File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run | result = context.run(func, *args) | │ │ │ └ () | │ │ └ functools.partial(<function query_doc_handler at 0x..>, user=UserModel(id='xxx', n... | │ └ <method 'run' of '_contextvars.Context' objects> | └ <_contextvars.Context object at 0x7f37aaeeed80> | | > File "/app/backend/open_webui/routers/retrieval.py", line 1809, in query_doc_handler | if form_data.hybrid_bm25_weight | └ QueryDocForm(collection_name='xxx', query="my query", k=0, k_reranke... | | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 891, in __getattr__ | raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}') | | AttributeError: 'QueryDocForm' object has no attribute 'hybrid_bm25_weight' ### Additional Information Maybe missing field into the BaseModel from `backend/open_webui/routers/retrieval.py#L1831` ``` class QueryCollectionsForm(BaseModel): collection_names: list[str] query: str k: Optional[int] = None k_reranker: Optional[int] = None r: Optional[float] = None hybrid: Optional[bool] = None ```
GiteaMirror added the bug label 2026-04-19 22:57:28 -05:00
Author
Owner

@Pekary commented on GitHub (May 28, 2025):

the interface of ollama has changed so open-webui can't get embeddings.

there are no response when using blow commands:

# no reponse
curl -X POST http://host.docker.internal:11434/api/embed -d '{"model": "bge-m3", "input": "Open WebUI is great!"}' 

curl -X POST http://host.docker.internal:11434/api/embeddings -d '{"model": "bge-m3", "input": "Open WebUI is great!"}' 
# response: {"embedding":[]}

using below command got correct result(note 'input' has changed to 'prompt'):

curl -X POST http://host.docker.internal:11434/api/embeddings -d '{"model": "bge-m3", "prompt": "Open WebUI is great!"}'
# response: {"embedding":[-1.3994859457015991,-0.3196967542171478....]
<!-- gh-comment-id:2915475671 --> @Pekary commented on GitHub (May 28, 2025): the interface of ollama has changed so open-webui can't get embeddings. there are no response when using blow commands: ```shell # no reponse curl -X POST http://host.docker.internal:11434/api/embed -d '{"model": "bge-m3", "input": "Open WebUI is great!"}' curl -X POST http://host.docker.internal:11434/api/embeddings -d '{"model": "bge-m3", "input": "Open WebUI is great!"}' # response: {"embedding":[]} ``` using below command got correct result(note 'input' has changed to 'prompt'): ```shell curl -X POST http://host.docker.internal:11434/api/embeddings -d '{"model": "bge-m3", "prompt": "Open WebUI is great!"}' # response: {"embedding":[-1.3994859457015991,-0.3196967542171478....] ```
Author
Owner

@rgaricano commented on GitHub (May 28, 2025):

what ollama version do you use?
update it!

/api/embeddings...Note: this endpoint has been superseded by /api/embed

https://github.com/ollama/ollama/blob/main/docs/api.md#generate-embedding

<!-- gh-comment-id:2915540880 --> @rgaricano commented on GitHub (May 28, 2025): what ollama version do you use? update it! > /api/embeddings...Note: this endpoint has been superseded by /api/embed https://github.com/ollama/ollama/blob/main/docs/api.md#generate-embedding
Author
Owner

@tjbck commented on GitHub (May 28, 2025):

Addressed with 4461122a0e

<!-- gh-comment-id:2916621510 --> @tjbck commented on GitHub (May 28, 2025): Addressed with 4461122a0e023f4c73b9cfea71f30fcd6e6f3d86
Author
Owner

@nem0nic commented on GitHub (May 29, 2025):

0.6.12 did not fix the issue. Still getting 400's especially when pasting anything.

<!-- gh-comment-id:2917925149 --> @nem0nic commented on GitHub (May 29, 2025): 0.6.12 did not fix the issue. Still getting 400's especially when pasting anything.
Author
Owner

@Pekary commented on GitHub (May 29, 2025):

@rgaricano 0.6.7-rc0, i tried to upgrade ollama to 0.8.0 which returns correct result using the first command. Sorry for taking up your time.

<!-- gh-comment-id:2917953901 --> @Pekary commented on GitHub (May 29, 2025): @rgaricano 0.6.7-rc0, i tried to upgrade ollama to 0.8.0 which returns correct result using the first command. Sorry for taking up your time.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#17251