[GH-ISSUE #16116] issue: outdated chroma-client #17786

Closed
opened 2026-04-19 23:40:13 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @nboehlke on GitHub (Jul 29, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16116

Check Existing Issues

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

Installation Method

Other

Open WebUI Version

v0.6.18

Ollama Version (if applicable)

0.9.6

Operating System

RHEL 9.5

Browser (if applicable)

n/a

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

OpenWebUI should access the Chroma database through port 8000 to retrieve the documents in "knowledge", and if a model is using a knowledge base, it should answer the question based on those documents in the knowledge base.

Also: When adding a document (.md, .txt, etc.) to a new or existing knowledge base and clicking "Save", you should get a success notification.

Actual Behavior

After prompting, a model connected to the knowledge base can't access the documents in the Chroma database and returns an answer that the requested information can't be presented.

Also: When adding a document (.md, .txt, etc.) to a new or existing knowledge base and clicking "Save", you get the errors.

  • "Failed to add file."
    and
  • "400: '_type'"
Image

Steps to Reproduce

  1. Use the podman command to run chromaDB

podman run -d \ --name chroma \ --network podman-intern \ --restart always \ -p 8000:8000 \ -v chroma_data:/chroma-db \ ghcr.io/chroma-core/chroma:1.0.6

  1. Use the podman command to run OWUI

podman run -d \ -p 3000:8080 \ --network podman-intern \ --device nvidia.com/gpu=all \ -v open-webui_data:/app/backend/data \ -e VECTOR_DB=chroma \ -e CHROMA_HTTP_HOST=chroma \ -e CHROMA_HTTP_PORT=8000 \ --name open-webui \ --restart=always \ ghcr.io/open-webui/open-webui:cuda

  1. As both pods are running in the same network, access OpenWebUI and try to create a new knowledge base.

  2. After creating a new knowledge base, try to upload a document, e.g., a Markdown file.

Logs & Screenshots

`File "/app/backend/open_webui/routers/retrieval.py", line 1254, in save_docs_to_vector_db
if VECTOR_DB_CLIENT.has_collection(collection_name=collection_name):
│ │ └ '8f8fa548-3c36-4a9d-8c5e-fa29f7756b6c'
│ └ <function ChromaClient.has_collection at 0x7fbbcf00b380>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x7fbbcf03ff50>

File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 64, in has_collection
collection_names = self.client.list_collections()
│ │ └ <function Client.list_collections at 0x7fbbd0095120>
│ └ <chromadb.api.client.Client object at 0x7fbbd198db50>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x7fbbcf03ff50>

File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 124, in list_collections
for model in self._server.list_collections(
│ │ └ <function FastAPI.list_collections at 0x7fbbced91260>
│ └ <chromadb.api.fastapi.FastAPI object at 0x7fbbd198d950>
└ <chromadb.api.client.Client object at 0x7fbbd198db50>
File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper
return f(*args, **kwargs)
│ │ └ {'tenant': 'default_tenant', 'database': 'default_database'}
│ └ (<chromadb.api.fastapi.FastAPI object at 0x7fbbd198d950>, None, None)
└ <function FastAPI.list_collections at 0x7fbbced911c0>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/fastapi.py", line 204, in list_collections
collection_models = [
File "/usr/local/lib/python3.11/site-packages/chromadb/api/fastapi.py", line 205, in
CollectionModel.from_json(json_collection)
│ │ └ {'id': 'd8c26fbe-006d-4e17-8865-b53ffc55404d', 'name': 'file-a891f951-757f-4c93-8cf9-bbd6e5ca29c7', 'configuration_json': {'h...
│ └ <classmethod(<function Collection.from_json at 0x7fbbd1af49a0>)>
└ <class 'chromadb.types.Collection'>
File "/usr/local/lib/python3.11/site-packages/chromadb/types.py", line 156, in from_json
configuration = CollectionConfigurationInternal.from_json(
│ └ <classmethod(<function ConfigurationInternal.from_json at 0x7fbbd1b8ede0>)>
└ <class 'chromadb.api.configuration.CollectionConfigurationInternal'>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/configuration.py", line 209, in from_json
f"Trying to instantiate configuration of type {cls.name} from JSON with type {json_map['_type']}"

KeyError: '_type'`

Additional Information

Please note that if this error occurs, your Chroma version might be 1.0.6 or newer.
The error does not occur if you are using Chroma 1.0.5 or older!

From my perspective, it could be sufficient if the Chroma client in OWUI is updated.

The following issue could be related: https://github.com/chroma-core/chroma/issues/4380

jairad26
on Apr 29
Contributor
@osamaoam is right, the docker image itself does not need to be updated, what needs to be updated (as per this image https://github.com/chroma-core/chroma/issues/4380#issuecomment-2831023858) is the chromadb client instance. you are invoking the chromadb client from /app/app/db/chromadb.py, which is running on a stale version. if that version gets upgraded (not the docker image) this will be fixed. closing this issue now as its also been discussed here https://github.com/chroma-core/chroma/issues/4386

Also the following issues within this repo:
#13875
#13878

Originally created by @nboehlke on GitHub (Jul 29, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/16116 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Other ### Open WebUI Version v0.6.18 ### Ollama Version (if applicable) 0.9.6 ### Operating System RHEL 9.5 ### Browser (if applicable) n/a ### 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 OpenWebUI should access the Chroma database through port 8000 to retrieve the documents in "knowledge", and if a model is using a knowledge base, it should answer the question based on those documents in the knowledge base. Also: When adding a document (.md, .txt, etc.) to a new or existing knowledge base and clicking "Save", you should get a success notification. ### Actual Behavior After prompting, a model connected to the knowledge base can't access the documents in the Chroma database and returns an answer that the requested information can't be presented. Also: When adding a document (.md, .txt, etc.) to a new or existing knowledge base and clicking "Save", you get the errors. - "Failed to add file." and - "400: '_type'" <img width="1645" height="198" alt="Image" src="https://github.com/user-attachments/assets/edb89019-99dc-43cb-b205-7625d9da1e26" /> ### Steps to Reproduce 1. Use the podman command to run chromaDB `podman run -d \ --name chroma \ --network podman-intern \ --restart always \ -p 8000:8000 \ -v chroma_data:/chroma-db \ ghcr.io/chroma-core/chroma:1.0.6` 2. Use the podman command to run OWUI `podman run -d \ -p 3000:8080 \ --network podman-intern \ --device nvidia.com/gpu=all \ -v open-webui_data:/app/backend/data \ -e VECTOR_DB=chroma \ -e CHROMA_HTTP_HOST=chroma \ -e CHROMA_HTTP_PORT=8000 \ --name open-webui \ --restart=always \ ghcr.io/open-webui/open-webui:cuda ` 3. As both pods are running in the same network, access OpenWebUI and try to create a new knowledge base. 4. After creating a new knowledge base, try to upload a document, e.g., a Markdown file. ### Logs & Screenshots `File "/app/backend/open_webui/routers/retrieval.py", line 1254, in save_docs_to_vector_db if VECTOR_DB_CLIENT.has_collection(collection_name=collection_name): │ │ └ '8f8fa548-3c36-4a9d-8c5e-fa29f7756b6c' │ └ <function ChromaClient.has_collection at 0x7fbbcf00b380> └ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x7fbbcf03ff50> File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 64, in has_collection collection_names = self.client.list_collections() │ │ └ <function Client.list_collections at 0x7fbbd[0095120](https://github.com/open-webui/open-webui/0095120)> │ └ <chromadb.api.client.Client object at 0x7fbbd198db50> └ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x7fbbcf03ff50> File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 124, in list_collections for model in self._server.list_collections( │ │ └ <function FastAPI.list_collections at 0x7fbbced91260> │ └ <chromadb.api.fastapi.FastAPI object at 0x7fbbd198d950> └ <chromadb.api.client.Client object at 0x7fbbd198db50> File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper return f(*args, **kwargs) │ │ └ {'tenant': 'default_tenant', 'database': 'default_database'} │ └ (<chromadb.api.fastapi.FastAPI object at 0x7fbbd198d950>, None, None) └ <function FastAPI.list_collections at 0x7fbbced911c0> File "/usr/local/lib/python3.11/site-packages/chromadb/api/fastapi.py", line 204, in list_collections collection_models = [ File "/usr/local/lib/python3.11/site-packages/chromadb/api/fastapi.py", line 205, in <listcomp> CollectionModel.from_json(json_collection) │ │ └ {'id': 'd8c26fbe-006d-4e17-8865-b53ffc55404d', 'name': 'file-a891f951-757f-4c93-8cf9-bbd6e5ca29c7', 'configuration_json': {'h... │ └ <classmethod(<function Collection.from_json at 0x7fbbd1af49a0>)> └ <class 'chromadb.types.Collection'> File "/usr/local/lib/python3.11/site-packages/chromadb/types.py", line 156, in from_json configuration = CollectionConfigurationInternal.from_json( │ └ <classmethod(<function ConfigurationInternal.from_json at 0x7fbbd1b8ede0>)> └ <class 'chromadb.api.configuration.CollectionConfigurationInternal'> File "/usr/local/lib/python3.11/site-packages/chromadb/api/configuration.py", line 209, in from_json f"Trying to instantiate configuration of type {cls.__name__} from JSON with type {json_map['_type']}" KeyError: '_type'` ### Additional Information Please note that if this error occurs, your Chroma version might be 1.0.6 or newer. **The error does not occur if you are using Chroma 1.0.5 or older!** From my perspective, it could be sufficient if the Chroma client in OWUI is updated. The following issue could be related: https://github.com/chroma-core/chroma/issues/4380 > [jairad26](https://github.com/jairad26) [on Apr 29](https://github.com/chroma-core/chroma/issues/4380#issuecomment-2839643555) Contributor @osamaoam is right, the docker image itself does not need to be updated, what needs to be updated (as per this image https://github.com/chroma-core/chroma/issues/4380#issuecomment-2831023858) is the chromadb client instance. you are invoking the chromadb client from /app/app/db/chromadb.py, which is running on a stale version. if that version gets upgraded (not the docker image) this will be fixed. closing this issue now as its also been discussed here https://github.com/chroma-core/chroma/issues/4386 Also the following issues within this repo: #13875 #13878
GiteaMirror added the bug label 2026-04-19 23:40:13 -05:00
Author
Owner

@tjbck commented on GitHub (Jul 29, 2025):

External chromadb should also match our internal chromadb.

<!-- gh-comment-id:3132119197 --> @tjbck commented on GitHub (Jul 29, 2025): External chromadb should also match our internal chromadb.
Author
Owner

@bmc0923 commented on GitHub (Sep 3, 2025):

Was this resolved? @tjbck

<!-- gh-comment-id:3247489183 --> @bmc0923 commented on GitHub (Sep 3, 2025): Was this resolved? @tjbck
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#17786