Originally created by @realies on GitHub (May 7, 2025).
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
v0.6.7
Ollama Version (if applicable)
v0.6.8
Operating System
Linux 6.12.24
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 listed steps to reproduce the bug in detail.
Expected Behavior
When performing a chat query that triggers the web search functionality (RAG), the process should fetch web results, embed them using the configured embedding model, store them in the vector database (ChromaDB), retrieve the relevant context, and use this context to generate an enhanced response from the LLM without backend errors.
Actual Behavior
During chats involving web search, the Open WebUI backend log shows repeated chromadb.errors.InvalidCollectionException: Collection web-search-... does not exist. errors. This appears to happen during the context retrieval step (get_all_items_from_collections / get_doc calls originating from chat_completion_files_handler).
The logs indicate a pattern where existing collections are deleted and then immediately re-added, suggesting a possible race condition where the retrieval attempts to access the collection before the underlying add/embedding process has fully completed and made the collection available again in ChromaDB.
This potentially prevents the web search context from being used correctly by the LLM or could lead to chat interruptions/failures.
Steps to Reproduce
Configure Open WebUI with an Ollama embedding model (mxbai-embed-large:335m was used).
Enable the Web Search feature (searxng was used).
Start a new chat.
Enter a prompt that requires timely information, triggering the web search (e.g., "latest news", "what are the current events?").
Observe the Open WebUI backend/container logs for InvalidCollectionException errors during the chat processing.
Logs & Screenshots
2025-05-07 09:07:45.469 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['d42b0525-3bb0-4aa0-8380-5de3c58a5031', '5a769291-515d-4e44-9f4b-494e95f57c01', '869e2c24-44b6-447e-9f68-469c6e050594', '8a75d8d7-95af-47d7-9324-c0e61a112be0']] [[{'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 1, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 1401, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 2802, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 4234, 'title': 'News headlines in 2025 — Global Issues'}]] - {}
2025-05-07 09:07:45.470 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['2e9df856-43f8-4daa-9759-28208765f2e3']] [[{'description': "Compute answers using Wolfram's breakthrough technology & knowledgebase, relied on by millions of students & professionals. For math, science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music…", 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.wolframalpha.com/input/?i=current+events+2025', 'start_index': 0, 'title': 'current events 2025 - Wolfram|Alpha'}]] - {}
2025-05-07 09:07:45.472 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['184e5b84-1c75-44de-ad0a-26cd208f1e6a', '991cda25-a82f-41a0-a096-c8a266257136', 'f530ef10-b2b6-4d38-b762-d053ec14873b', '1f091066-c48c-4cda-baa2-176afae762d4', '6b417f2a-3100-4f0c-b5b8-82be262bb106', '0052a09f-421c-499b-bcaa-3b059262f044', '946b3441-aafc-47c0-90d3-3029615aeb9a', '9663db2d-9523-4ed2-9ca8-554ddf0a1d5b', 'be97887e-44ef-442c-a633-95eb24fb3d4a', 'a16db4f6-e7e7-49cc-a129-34475cfdd454', 'b882dd1e-6671-419f-9500-1615ff8c97eb', '87aed11e-fe7d-42e5-a510-bacc17f54c7b', '23abbc4f-54f2-483b-b450-3441fe39809d', '8dec457a-0697-4351-9b72-08b52704d9f5', '4b13ee15-c3b0-4360-a7b5-ec34fac3f9b2', 'bcf4de2e-d5bd-4a94-9eaa-dcbecab74b6a']] [[{'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 4, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 70, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 1469, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 2869, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 4270, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 5671, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 7072, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 8472, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 9874, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 11284, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 12681, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 14075, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 15470, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 16867, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 18264, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 19670, 'title': 'Major Events in 2025 - The New York Times'}]] - {}
2025-05-07 09:07:45.473 | ERROR | open_webui.retrieval.utils:get_doc:106 - Error getting doc web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist. - {}
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 0x1498e7420860>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function Thread.run at 0x1498e7420540>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ │ │ └ (<weakref at 0x1496094950d0; to 'ThreadPoolExecutor' at 0x14977a318c50>, <_queue.SimpleQueue object at 0x149609495580>, None,...
│ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ └ <function _worker at 0x1498e6340180>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
work_item.run()
│ └ <function _WorkItem.run at 0x1498e63402c0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ │ │ └ ()
│ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ └ <function chat_completion_files_handler.<locals>.<lambda> at 0x149788784ae0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/app/backend/open_webui/utils/middleware.py", line 623, in <lambda>
lambda: get_sources_from_files(
└ <function get_sources_from_files at 0x14977e202e80>
File "/app/backend/open_webui/retrieval/utils.py", line 533, in get_sources_from_files
context = get_all_items_from_collections(collection_names)
│ └ {'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'}
└ <function get_all_items_from_collections at 0x14977e202340>
File "/app/backend/open_webui/retrieval/utils.py", line 245, in get_all_items_from_collections
result = get_doc(collection_name=collection_name)
│ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
└ <function get_doc at 0x14977e2032e0>
> File "/app/backend/open_webui/retrieval/utils.py", line 99, in get_doc
result = VECTOR_DB_CLIENT.get(collection_name=collection_name)
│ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ └ <function ChromaClient.get at 0x149785029260>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 126, in get
collection = self.client.get_collection(name=collection_name)
│ │ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ │ └ <function Client.get_collection at 0x149787ce1620>
│ └ <chromadb.api.client.Client object at 0x149787dd7e90>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 171, in get_collection
model = self._server.get_collection(
│ │ └ <function SegmentAPI.get_collection at 0x149784f19440>
│ └ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
└ <chromadb.api.client.Client object at 0x149787dd7e90>
File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper
return f(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f193a0>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 103, in wrapper
return self._rate_limit_enforcer.rate_limit(func)(*args, **kwargs)
│ │ │ │ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ │ │ │ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
│ │ │ └ <function SegmentAPI.get_collection at 0x149784f19300>
│ │ └ <function SimpleRateLimitEnforcer.rate_limit at 0x149784e32700>
│ └ <chromadb.rate_limit.simple_rate_limit.SimpleRateLimitEnforcer object at 0x149784f41790>
└ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
File "/usr/local/lib/python3.11/site-packages/chromadb/rate_limit/simple_rate_limit/__init__.py", line 24, in wrapper
return func(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f19300>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 316, in get_collection
raise InvalidCollectionException(f"Collection {name} does not exist.")
└ <class 'chromadb.errors.InvalidCollectionException'>
chromadb.errors.InvalidCollectionException: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist.
2025-05-07 09:07:45.473 | ERROR | open_webui.retrieval.utils:get_all_items_from_collections:249 - Error when querying the collection: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist. - {}
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 0x1498e7420860>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function Thread.run at 0x1498e7420540>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ │ │ └ (<weakref at 0x1496094950d0; to 'ThreadPoolExecutor' at 0x14977a318c50>, <_queue.SimpleQueue object at 0x149609495580>, None,...
│ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ └ <function _worker at 0x1498e6340180>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
work_item.run()
│ └ <function _WorkItem.run at 0x1498e63402c0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ │ │ └ ()
│ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ └ <function chat_completion_files_handler.<locals>.<lambda> at 0x149788784ae0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/app/backend/open_webui/utils/middleware.py", line 623, in <lambda>
lambda: get_sources_from_files(
└ <function get_sources_from_files at 0x14977e202e80>
File "/app/backend/open_webui/retrieval/utils.py", line 533, in get_sources_from_files
context = get_all_items_from_collections(collection_names)
│ └ {'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'}
└ <function get_all_items_from_collections at 0x14977e202340>
> File "/app/backend/open_webui/retrieval/utils.py", line 245, in get_all_items_from_collections
result = get_doc(collection_name=collection_name)
│ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
└ <function get_doc at 0x14977e2032e0>
File "/app/backend/open_webui/retrieval/utils.py", line 107, in get_doc
raise e
File "/app/backend/open_webui/retrieval/utils.py", line 99, in get_doc
result = VECTOR_DB_CLIENT.get(collection_name=collection_name)
│ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ └ <function ChromaClient.get at 0x149785029260>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 126, in get
collection = self.client.get_collection(name=collection_name)
│ │ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ │ └ <function Client.get_collection at 0x149787ce1620>
│ └ <chromadb.api.client.Client object at 0x149787dd7e90>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 171, in get_collection
model = self._server.get_collection(
│ │ └ <function SegmentAPI.get_collection at 0x149784f19440>
│ └ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
└ <chromadb.api.client.Client object at 0x149787dd7e90>
File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper
return f(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f193a0>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 103, in wrapper
return self._rate_limit_enforcer.rate_limit(func)(*args, **kwargs)
│ │ │ │ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ │ │ │ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
│ │ │ └ <function SegmentAPI.get_collection at 0x149784f19300>
│ │ └ <function SimpleRateLimitEnforcer.rate_limit at 0x149784e32700>
│ └ <chromadb.rate_limit.simple_rate_limit.SimpleRateLimitEnforcer object at 0x149784f41790>
└ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
File "/usr/local/lib/python3.11/site-packages/chromadb/rate_limit/simple_rate_limit/__init__.py", line 24, in wrapper
return func(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f19300>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 316, in get_collection
raise InvalidCollectionException(f"Collection {name} does not exist.")
└ <class 'chromadb.errors.InvalidCollectionException'>
chromadb.errors.InvalidCollectionException: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist.
Additional Information
No response
Originally created by @realies on GitHub (May 7, 2025).
### 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
v0.6.7
### Ollama Version (if applicable)
v0.6.8
### Operating System
Linux 6.12.24
### 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 listed steps to reproduce the bug in detail.
### Expected Behavior
When performing a chat query that triggers the web search functionality (RAG), the process should fetch web results, embed them using the configured embedding model, store them in the vector database (ChromaDB), retrieve the relevant context, and use this context to generate an enhanced response from the LLM without backend errors.
### Actual Behavior
During chats involving web search, the Open WebUI backend log shows repeated `chromadb.errors.InvalidCollectionException: Collection web-search-... does not exist.` errors. This appears to happen during the context retrieval step (`get_all_items_from_collections` / `get_doc` calls originating from `chat_completion_files_handler`).
The logs indicate a pattern where existing collections are deleted and then immediately re-added, suggesting a possible race condition where the retrieval attempts to access the collection before the underlying add/embedding process has fully completed and made the collection available again in ChromaDB.
This potentially prevents the web search context from being used correctly by the LLM or could lead to chat interruptions/failures.
### Steps to Reproduce
1. Configure Open WebUI with an Ollama embedding model (`mxbai-embed-large:335m` was used).
2. Enable the Web Search feature (`searxng` was used).
3. Start a new chat.
4. Enter a prompt that requires timely information, triggering the web search (e.g., "latest news", "what are the current events?").
5. Observe the Open WebUI backend/container logs for `InvalidCollectionException` errors during the chat processing.
### Logs & Screenshots
```
2025-05-07 09:07:45.469 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['d42b0525-3bb0-4aa0-8380-5de3c58a5031', '5a769291-515d-4e44-9f4b-494e95f57c01', '869e2c24-44b6-447e-9f68-469c6e050594', '8a75d8d7-95af-47d7-9324-c0e61a112be0']] [[{'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 1, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 1401, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 2802, 'title': 'News headlines in 2025 — Global Issues'}, {'description': 'News headlines and stories from 2025 that you can read on the global issues web site.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en-gb', 'source': 'https://www.globalissues.org/news/2025', 'start_index': 4234, 'title': 'News headlines in 2025 — Global Issues'}]] - {}
2025-05-07 09:07:45.470 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['2e9df856-43f8-4daa-9759-28208765f2e3']] [[{'description': "Compute answers using Wolfram's breakthrough technology & knowledgebase, relied on by millions of students & professionals. For math, science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music…", 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.wolframalpha.com/input/?i=current+events+2025', 'start_index': 0, 'title': 'current events 2025 - Wolfram|Alpha'}]] - {}
2025-05-07 09:07:45.472 | INFO | open_webui.retrieval.utils:get_doc:102 - query_doc:result [['184e5b84-1c75-44de-ad0a-26cd208f1e6a', '991cda25-a82f-41a0-a096-c8a266257136', 'f530ef10-b2b6-4d38-b762-d053ec14873b', '1f091066-c48c-4cda-baa2-176afae762d4', '6b417f2a-3100-4f0c-b5b8-82be262bb106', '0052a09f-421c-499b-bcaa-3b059262f044', '946b3441-aafc-47c0-90d3-3029615aeb9a', '9663db2d-9523-4ed2-9ca8-554ddf0a1d5b', 'be97887e-44ef-442c-a633-95eb24fb3d4a', 'a16db4f6-e7e7-49cc-a129-34475cfdd454', 'b882dd1e-6671-419f-9500-1615ff8c97eb', '87aed11e-fe7d-42e5-a510-bacc17f54c7b', '23abbc4f-54f2-483b-b450-3441fe39809d', '8dec457a-0697-4351-9b72-08b52704d9f5', '4b13ee15-c3b0-4360-a7b5-ec34fac3f9b2', 'bcf4de2e-d5bd-4a94-9eaa-dcbecab74b6a']] [[{'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 4, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 70, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 1469, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 2869, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 4270, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 5671, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 7072, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 8472, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 9874, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 11284, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 12681, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 14075, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 15470, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 16867, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 18264, 'title': 'Major Events in 2025 - The New York Times'}, {'description': 'Planning your calendar for next year? Here are some events to look out for.', 'embedding_config': '{"engine": "ollama", "model": "mxbai-embed-large:335m"}', 'language': 'en', 'source': 'https://www.nytimes.com/2024/12/09/special-series/events-to-shake-the-world-2025.html', 'start_index': 19670, 'title': 'Major Events in 2025 - The New York Times'}]] - {}
2025-05-07 09:07:45.473 | ERROR | open_webui.retrieval.utils:get_doc:106 - Error getting doc web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist. - {}
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 0x1498e7420860>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function Thread.run at 0x1498e7420540>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ │ │ └ (<weakref at 0x1496094950d0; to 'ThreadPoolExecutor' at 0x14977a318c50>, <_queue.SimpleQueue object at 0x149609495580>, None,...
│ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ └ <function _worker at 0x1498e6340180>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
work_item.run()
│ └ <function _WorkItem.run at 0x1498e63402c0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ │ │ └ ()
│ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ └ <function chat_completion_files_handler.<locals>.<lambda> at 0x149788784ae0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/app/backend/open_webui/utils/middleware.py", line 623, in <lambda>
lambda: get_sources_from_files(
└ <function get_sources_from_files at 0x14977e202e80>
File "/app/backend/open_webui/retrieval/utils.py", line 533, in get_sources_from_files
context = get_all_items_from_collections(collection_names)
│ └ {'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'}
└ <function get_all_items_from_collections at 0x14977e202340>
File "/app/backend/open_webui/retrieval/utils.py", line 245, in get_all_items_from_collections
result = get_doc(collection_name=collection_name)
│ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
└ <function get_doc at 0x14977e2032e0>
> File "/app/backend/open_webui/retrieval/utils.py", line 99, in get_doc
result = VECTOR_DB_CLIENT.get(collection_name=collection_name)
│ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ └ <function ChromaClient.get at 0x149785029260>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 126, in get
collection = self.client.get_collection(name=collection_name)
│ │ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ │ └ <function Client.get_collection at 0x149787ce1620>
│ └ <chromadb.api.client.Client object at 0x149787dd7e90>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 171, in get_collection
model = self._server.get_collection(
│ │ └ <function SegmentAPI.get_collection at 0x149784f19440>
│ └ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
└ <chromadb.api.client.Client object at 0x149787dd7e90>
File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper
return f(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f193a0>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 103, in wrapper
return self._rate_limit_enforcer.rate_limit(func)(*args, **kwargs)
│ │ │ │ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ │ │ │ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
│ │ │ └ <function SegmentAPI.get_collection at 0x149784f19300>
│ │ └ <function SimpleRateLimitEnforcer.rate_limit at 0x149784e32700>
│ └ <chromadb.rate_limit.simple_rate_limit.SimpleRateLimitEnforcer object at 0x149784f41790>
└ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
File "/usr/local/lib/python3.11/site-packages/chromadb/rate_limit/simple_rate_limit/__init__.py", line 24, in wrapper
return func(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f19300>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 316, in get_collection
raise InvalidCollectionException(f"Collection {name} does not exist.")
└ <class 'chromadb.errors.InvalidCollectionException'>
chromadb.errors.InvalidCollectionException: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist.
2025-05-07 09:07:45.473 | ERROR | open_webui.retrieval.utils:get_all_items_from_collections:249 - Error when querying the collection: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist. - {}
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 0x1498e7420860>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function Thread.run at 0x1498e7420540>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ │ │ └ (<weakref at 0x1496094950d0; to 'ThreadPoolExecutor' at 0x14977a318c50>, <_queue.SimpleQueue object at 0x149609495580>, None,...
│ │ └ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
│ └ <function _worker at 0x1498e6340180>
└ <Thread(ThreadPoolExecutor-7_0, started 22638575335104)>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
work_item.run()
│ └ <function _WorkItem.run at 0x1498e63402c0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ │ │ └ ()
│ │ └ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
│ └ <function chat_completion_files_handler.<locals>.<lambda> at 0x149788784ae0>
└ <concurrent.futures.thread._WorkItem object at 0x14960b14ff50>
File "/app/backend/open_webui/utils/middleware.py", line 623, in <lambda>
lambda: get_sources_from_files(
└ <function get_sources_from_files at 0x14977e202e80>
File "/app/backend/open_webui/retrieval/utils.py", line 533, in get_sources_from_files
context = get_all_items_from_collections(collection_names)
│ └ {'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'}
└ <function get_all_items_from_collections at 0x14977e202340>
> File "/app/backend/open_webui/retrieval/utils.py", line 245, in get_all_items_from_collections
result = get_doc(collection_name=collection_name)
│ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
└ <function get_doc at 0x14977e2032e0>
File "/app/backend/open_webui/retrieval/utils.py", line 107, in get_doc
raise e
File "/app/backend/open_webui/retrieval/utils.py", line 99, in get_doc
result = VECTOR_DB_CLIENT.get(collection_name=collection_name)
│ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ └ <function ChromaClient.get at 0x149785029260>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/app/backend/open_webui/retrieval/vector/dbs/chroma.py", line 126, in get
collection = self.client.get_collection(name=collection_name)
│ │ │ └ 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958'
│ │ └ <function Client.get_collection at 0x149787ce1620>
│ └ <chromadb.api.client.Client object at 0x149787dd7e90>
└ <open_webui.retrieval.vector.dbs.chroma.ChromaClient object at 0x149787ca7750>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/client.py", line 171, in get_collection
model = self._server.get_collection(
│ │ └ <function SegmentAPI.get_collection at 0x149784f19440>
│ └ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
└ <chromadb.api.client.Client object at 0x149787dd7e90>
File "/usr/local/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 150, in wrapper
return f(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f193a0>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 103, in wrapper
return self._rate_limit_enforcer.rate_limit(func)(*args, **kwargs)
│ │ │ │ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ │ │ │ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
│ │ │ └ <function SegmentAPI.get_collection at 0x149784f19300>
│ │ └ <function SimpleRateLimitEnforcer.rate_limit at 0x149784e32700>
│ └ <chromadb.rate_limit.simple_rate_limit.SimpleRateLimitEnforcer object at 0x149784f41790>
└ <chromadb.api.segment.SegmentAPI object at 0x149787e77690>
File "/usr/local/lib/python3.11/site-packages/chromadb/rate_limit/simple_rate_limit/__init__.py", line 24, in wrapper
return func(*args, **kwargs)
│ │ └ {'name': 'web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958', 'tenant': 'default_tenant', 'database': 'default_...
│ └ (<chromadb.api.segment.SegmentAPI object at 0x149787e77690>,)
└ <function SegmentAPI.get_collection at 0x149784f19300>
File "/usr/local/lib/python3.11/site-packages/chromadb/api/segment.py", line 316, in get_collection
raise InvalidCollectionException(f"Collection {name} does not exist.")
└ <class 'chromadb.errors.InvalidCollectionException'>
chromadb.errors.InvalidCollectionException: Collection web-search-64a4839ea0ea13151b73976fe0e3f16057a45105c56e70814958 does not exist.
```
### Additional Information
_No response_
GiteaMirror
added the bug label 2025-11-11 16:12:08 -06:00
We're unable to reproduce on our end but I highly suspect this has something to do with duplicate urls, b50dcb1862 may have addressed this issue. Keep us updated!
@tjbck commented on GitHub (May 7, 2025):
We're unable to reproduce on our end but I highly suspect this has something to do with duplicate urls, b50dcb18626e28f29ecd3f587354a2b25e822d31 may have addressed this issue. Keep us updated!
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @realies on GitHub (May 7, 2025).
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.7
Ollama Version (if applicable)
v0.6.8
Operating System
Linux 6.12.24
Browser (if applicable)
N/A
Confirmation
README.md.Expected Behavior
When performing a chat query that triggers the web search functionality (RAG), the process should fetch web results, embed them using the configured embedding model, store them in the vector database (ChromaDB), retrieve the relevant context, and use this context to generate an enhanced response from the LLM without backend errors.
Actual Behavior
During chats involving web search, the Open WebUI backend log shows repeated
chromadb.errors.InvalidCollectionException: Collection web-search-... does not exist.errors. This appears to happen during the context retrieval step (get_all_items_from_collections/get_doccalls originating fromchat_completion_files_handler).The logs indicate a pattern where existing collections are deleted and then immediately re-added, suggesting a possible race condition where the retrieval attempts to access the collection before the underlying add/embedding process has fully completed and made the collection available again in ChromaDB.
This potentially prevents the web search context from being used correctly by the LLM or could lead to chat interruptions/failures.
Steps to Reproduce
mxbai-embed-large:335mwas used).searxngwas used).InvalidCollectionExceptionerrors during the chat processing.Logs & Screenshots
Additional Information
No response
@tjbck commented on GitHub (May 7, 2025):
We're unable to reproduce on our end but I highly suspect this has something to do with duplicate urls,
b50dcb1862may have addressed this issue. Keep us updated!