In Python, raise "some string" does not raise an exception with that message — it raises a TypeError: exceptions must derive from BaseException. This bug exists in three places in the backend where the code intends to signal an error condition but instead raises a confusing TypeError, making the actual problem very hard to debug from logs.
Fixed all three occurrences by replacing raise "string" with proper exception types (ValueError / RuntimeError) that carry the intended error message.
Affected locations
backend/open_webui/retrieval/utils.py — generate_openai_batch_embeddings(): when API response is missing the data key
backend/open_webui/retrieval/utils.py — generate_ollama_batch_embeddings(): when API response is missing the embeddings key
backend/open_webui/routers/ollama.py — download_file_stream(): when blob upload to Ollama fails
Fixed
Replaced raise "Something went wrong :/" with raise ValueError(...) with descriptive messages
Replaced raise "Ollama: Could not create blob..." with raise RuntimeError(...)
Error logs now show the actual problem instead of a misleading TypeError
Additional Information
Tested by reviewing the code path and verifying the fix
Self-reviewed the code changes
These are all inside try/except Exception blocks, so behavior is preserved — only the error message logged changes from a confusing TypeError to the actual descriptive error
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.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/22446
**Author:** [@alvinttang](https://github.com/alvinttang)
**Created:** 3/8/2026
**Status:** ✅ Merged
**Merged:** 3/8/2026
**Merged by:** [@tjbck](https://github.com/tjbck)
**Base:** `dev` ← **Head:** `fix/raise-string-typeerror-v2`
---
### 📝 Commits (1)
- [`f2e46ad`](https://github.com/open-webui/open-webui/commit/f2e46ad86385ab48671f5e01b90ddcd9ba6d7ea0) fix: replace bare string raises with proper exception types
### 📊 Changes
**2 files changed** (+3 additions, -3 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/open_webui/retrieval/utils.py` (+2 -2)
📝 `backend/open_webui/routers/ollama.py` (+1 -1)
</details>
### 📄 Description
### Description
- In Python, `raise "some string"` does not raise an exception with that message — it raises a `TypeError: exceptions must derive from BaseException`. This bug exists in three places in the backend where the code intends to signal an error condition but instead raises a confusing `TypeError`, making the actual problem very hard to debug from logs.
- Fixed all three occurrences by replacing `raise "string"` with proper exception types (`ValueError` / `RuntimeError`) that carry the intended error message.
### Affected locations
1. `backend/open_webui/retrieval/utils.py` — `generate_openai_batch_embeddings()`: when API response is missing the `data` key
2. `backend/open_webui/retrieval/utils.py` — `generate_ollama_batch_embeddings()`: when API response is missing the `embeddings` key
3. `backend/open_webui/routers/ollama.py` — `download_file_stream()`: when blob upload to Ollama fails
### Fixed
- Replaced `raise "Something went wrong :/"` with `raise ValueError(...)` with descriptive messages
- Replaced `raise "Ollama: Could not create blob..."` with `raise RuntimeError(...)`
- Error logs now show the actual problem instead of a misleading `TypeError`
### Additional Information
- Tested by reviewing the code path and verifying the fix
- Self-reviewed the code changes
- These are all inside `try/except Exception` blocks, so behavior is preserved — only the error message logged changes from a confusing `TypeError` to the actual descriptive error
- Rebased onto dev (replaces #22435)
### Contributor License Agreement
- [x] 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.
---
<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/22446
Author: @alvinttang
Created: 3/8/2026
Status: ✅ Merged
Merged: 3/8/2026
Merged by: @tjbck
Base:
dev← Head:fix/raise-string-typeerror-v2📝 Commits (1)
f2e46adfix: replace bare string raises with proper exception types📊 Changes
2 files changed (+3 additions, -3 deletions)
View changed files
📝
backend/open_webui/retrieval/utils.py(+2 -2)📝
backend/open_webui/routers/ollama.py(+1 -1)📄 Description
Description
raise "some string"does not raise an exception with that message — it raises aTypeError: exceptions must derive from BaseException. This bug exists in three places in the backend where the code intends to signal an error condition but instead raises a confusingTypeError, making the actual problem very hard to debug from logs.raise "string"with proper exception types (ValueError/RuntimeError) that carry the intended error message.Affected locations
backend/open_webui/retrieval/utils.py—generate_openai_batch_embeddings(): when API response is missing thedatakeybackend/open_webui/retrieval/utils.py—generate_ollama_batch_embeddings(): when API response is missing theembeddingskeybackend/open_webui/routers/ollama.py—download_file_stream(): when blob upload to Ollama failsFixed
raise "Something went wrong :/"withraise ValueError(...)with descriptive messagesraise "Ollama: Could not create blob..."withraise RuntimeError(...)TypeErrorAdditional Information
try/except Exceptionblocks, so behavior is preserved — only the error message logged changes from a confusingTypeErrorto the actual descriptive errorContributor License Agreement
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.