Other embedding endpoints work fine, because they are sync
Reindex specifically is an async FASTAPI api endpoint.
Because it is async we have an issue:
we are trying to go from
async reindex -> process file (sync) -> save to vector db (sync) -> asnyc call
async inside async chain doesnt work
therefore i am here implementing a run in threadpool, this should BREAK the async chain by spawning a worker thread for handling the subsequent embedding functions and therefore not cause any loop issues anymore
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
Note
Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/19434
**Author:** [@Classic298](https://github.com/Classic298)
**Created:** 11/24/2025
**Status:** ✅ Merged
**Merged:** 11/24/2025
**Merged by:** [@tjbck](https://github.com/tjbck)
**Base:** `dev` ← **Head:** `patch-1`
---
### 📝 Commits (1)
- [`a36124d`](https://github.com/open-webui/open-webui/commit/a36124d2d400bd951f18b836fe4f13f1a6ee5260) Update knowledge.py
### 📊 Changes
**1 file changed** (+3 additions, -1 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/open_webui/routers/knowledge.py` (+3 -1)
</details>
### 📄 Description
Other embedding endpoints work fine, because they are sync
Reindex specifically is an **async** FASTAPI api endpoint.
Because it is async we have an issue:
we are trying to go from
async reindex -> process file (sync) -> save to vector db (sync) -> asnyc call
async inside async chain doesnt work
therefore i am here implementing a run in threadpool, this should BREAK the async chain by spawning a worker thread for handling the subsequent embedding functions and therefore not cause any loop issues anymore
### Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms.
> [!NOTE]
> Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/19434
Author: @Classic298
Created: 11/24/2025
Status: ✅ Merged
Merged: 11/24/2025
Merged by: @tjbck
Base:
dev← Head:patch-1📝 Commits (1)
a36124dUpdate knowledge.py📊 Changes
1 file changed (+3 additions, -1 deletions)
View changed files
📝
backend/open_webui/routers/knowledge.py(+3 -1)📄 Description
Other embedding endpoints work fine, because they are sync
Reindex specifically is an async FASTAPI api endpoint.
Because it is async we have an issue:
we are trying to go from
async reindex -> process file (sync) -> save to vector db (sync) -> asnyc call
async inside async chain doesnt work
therefore i am here implementing a run in threadpool, this should BREAK the async chain by spawning a worker thread for handling the subsequent embedding functions and therefore not cause any loop issues anymore
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.