Repository navigation
fix: Open WebUI 0.12.0 compatibility (Azure 3.0.1, Gemini 1.19.1, e2e) - #199
Merged
Merged
Conversation
Open WebUI 0.12 loads every function as function_<id>_<uuid4 hex>
(utils/plugin.py:277; 0.11.x: function_<id>), so its log lines read
function_azure_<hex>:pipe:4120. Signatures such as
("function_azure:pipe", "request: 400") no longer matched: the errors the
azure, n8n and infomaniak suites provoke on purpose failed server-log, and
the "no traceback" part of the azure rag search-error checks matched no
block at all.
ServerLog now strips the suffix from everything it reads (since, lines,
the error / warning blocks), also tool_<id>_<hex>; ids with underscores
(time_token_tracker) keep their full name. server.log in the output
directory stays as logged.
+semver: none
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s turn Open WebUI 0.12 gives an admin only read access to another user's chat: chat_completion asks Chats.get_accessible_chat_by_id(chat_id, user, permission='write') (main.py:1554, models/chats.py:1903), which needs the owner, a chat shared with replies allowed or a shared folder, and answers HTTP 404 before any pipe runs. Up to 0.11 the owner or any admin could continue a chat (main.py:1495 in 0.11.4). The admin turn of gemini.imgedit.admin therefore never reached the pipe (turn3: contents=0). On 0.12 and later the check now expects exactly that (HTTP 404, no upstream request); on 0.11 it still checks that the pipe reads the user's chat and sends the admin's file and the generated image. The admin's file access on the API path stays covered by imgedit.api-foreign. +semver: none Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Open WebUI 0.12 renamed the metadata key that holds the user's prompt
before its RAG template is added: metadata['user_prompt'] (0.11.4
utils/middleware.py:3231) is now metadata['base_user_prompt'] (0.12.0
utils/middleware.py:3333). _search_query_text found neither key and fell
back to the rewritten user message, so with an attached file or chat,
knowledge or web search, Azure AI Search got the RAG template ("### Task:
Respond to the user query ...") as its search text instead of the typed
prompt (azure.rag.query-text.attached).
The pipeline now reads base_user_prompt first and falls back to
user_prompt, so Open WebUI 0.11 and older behave as before. Version 3.0.1.
Tests: azure.rag.query-text.attached shows the search text first in its
detail; new azure.rag.query-text.metadata runs the staged file in the
driver process with a wrapped user message and base_user_prompt,
user_prompt, both, and a None base_user_prompt, on every Open WebUI version.
+semver: patch
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…UI 0.12 Open WebUI 0.12 leaves every assistant message without content and output out of the request it rebuilds from a saved chat (load_messages_from_db, utils/middleware.py:2277); 0.11.4 left out only failed ones (middleware.py:2241). _trailing_user_messages still mirrored the old rule for the saved chain, so after an empty answer without an error (stopped before its first token) the request had one trailing user message more than the chain and the edit turn counted as a guided regeneration: the upload of the edit message was also taken as history, and with IMAGE_DEDUP_HISTORY=false it was sent twice. Answers without content, output and tool calls are now skipped in the request and in the saved chain alike, which counts the same on every Open WebUI version. Version 1.19.1. Test: gemini.imgedit.empty-answer (a saved chat with an empty answer, the next turn with an upload, IMAGE_DEDUP_HISTORY=false). With 1.19.0 it fails on 0.12.0 (sent=[..., upload1, upload2, upload2]) and passes on 0.11.4. +semver: patch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All suites in strict known mode: 549 PASS, 0 FAIL, 0 KNOWN on v0.12.0-slim, v0.11.4-slim and v0.11.3-slim (azure_ai_foundry.py 3.0.1, google_gemini.py 1.19.1); the meta-test with main 31a4e7d gives 57 PASS / 388 FAIL / 0 KNOWN. Documents the module-name normalization of the log signatures, the version-dependent imgedit.admin check, the new azure.rag.query-text.metadata and gemini.imgedit.empty-answer checks, run times on 0.12.0, and what check_owui_api.sh cannot see (it passed 0.12.0 although __metadata__["user_prompt"] was renamed). +semver: none Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…LAUDE.md +semver: none Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Open WebUI v0.12.0 was released on 2026-10-10. On
main, all suites passed on 0.11.3 and 0.11.4, but 0.12.0 gave 542 PASS / 5 FAIL. Two of the causes are in our functions; the rest are test assumptions that 0.12 changed. One further 0.12 incompatibility turned up while reading Open WebUI's diff.Fixes in the functions
user_promptbecamebase_user_prompt(middleware.py:3333; 0.11.4::3231). The pipeline read only the old key.base_user_promptfirst and falls back touser_prompt. Nothing changes on 0.11.azure.rag.query-text.metadatacovers four cases: only the new key, only the old key, both, and aNonenew key.middleware.py:2277; 0.11.4::2241).IMAGE_DEDUP_HISTORY=falseit was sent twice.gemini.imgedit.empty-answer: it fails with 1.19.0 on 0.12.0 and passes with 1.19.1 on 0.12.0 and 0.11.4.Test changes
function_<id>_<uuid hex>(utils/plugin.py:277). Expected-error signatures such as("function_azure:pipe", …)therefore stopped matching. That caused the azure, n8n and infomaniakserver-logfailures.harness/logs.pynow normalizes the names tofunction_<id>everywhere it reads the log.gemini.imgedit.admin: Open WebUI 0.12 deliberately no longer lets an admin continue another user's chat. It answers 404, because writing needs write access to the chat (main.py:1554,models/chats.py:1903-1945). The check is version-gated: on 0.12 and later it expects the 404 and no upstream request. The admin reading another user's file stays covered byimgedit.api-foreign.docs/testing.mdlists 0.12.0, 0.11.4 and 0.11.3 as tested, with 549 checks.CLAUDE.mdnotes both 0.12 pitfalls.DEFAULT_IMAGEstaysv0.11.4-slimuntil the first 0.12 patch release.Verification
--strict-known, v0.12.0-slim--strict-known, v0.11.4-slim--strict-known, v0.11.3-slimE2E_MOCK_FAULT=500)Other 0.12 changes, not addressed here
time_token_trackernow counts the<attached_files>tags, because 0.12 adds them before inlet filters.🤖 Generated with Claude Code