The audit log only showed which model a request used inside the logged request body, which is cut off at MAX_BODY_LOG_SIZE, so the model went missing whenever a long prompt came before it. Audit entries for chat and completion requests, including the OpenAI, Ollama and Anthropic-compatible endpoints, now carry a model_id field with the model the client asked for, at every AUDIT_LOG_LEVEL and however long the request is. Other requests log it as null.
Fixes#30097
On a shared Valkey or ElastiCache, Open WebUI's vector store connections identified themselves only as the generic GLIDE Python client, the same as every other app using that library, so operators could not tell its traffic apart in server-side logs. Both connections now report the library name as GlidePySync(open-webui). The tag needs valkey-glide-sync 2.5.2 or newer, so the pinned install version moves from 2.3.1 to 2.5.2, and an older manual install fails at startup until it is upgraded.
Fixes#31654
Open WebUI could not connect to a Milvus server that uses a self-signed or company-issued TLS certificate, because there was no way to tell it which certificate to trust. The new MILVUS_SERVER_PEM_PATH setting takes the path to that certificate file and uses it for the Milvus connection, in both normal and multi-tenancy mode. Leaving it unset keeps the current behaviour.
Fixes#31632
MinerU 4.0 dropped the parsing interface its self-hosted server had in 3.x, so the local MinerU engine failed with a 404 on every document when pointed at a 4.x server. Open WebUI now detects a 4.x server and talks to it through its new interface, while 3.x servers keep working as before. On 4.x, `tier` in the MinerU parameters picks the parsing quality (flash, basic, standard or advanced) and `enable_ocr` forces OCR; 3.x-only settings such as `language` and `model_version` are not sent, since 4.x refuses them. 4.x also returns every image as base64 text inside the document, which would otherwise be indexed as text, so images are left out of the extracted content.
Fixes#31516
An identity provider could delete an admin account through SCIM, including the first admin account, for example when its sync pruned users it no longer had assigned. SCIM already ignores deactivation requests for admins so a sync cannot demote them, and the admin panel refuses to delete the first admin, but a SCIM delete request still went through and could leave the instance without anyone who has admin access. Deleting an admin through SCIM is now refused with a 403 and the account stays; admins are removed from the admin panel instead.
Fixes#27662
Voice calls and dictation on Android Chrome stopped working after about ten uses in one session: calls hung on "Listening" and spoken replies went silent until the page was reloaded. Each use left the microphone level display holding on to an audio output, and Chrome on Android allows only ten of those per page. The level display now releases it when a turn ends and when a call or recording stops.
Fixes#29969
With an orchestrator connection in Admin > Integrations > Open Terminal set to Terminal Contexts > Chat = "Per chat", several file browser actions ran in the shared terminal workspace, outside the chat's own one. Opening an HTML file showed "File not found", notebooks could not run, saving an edited file and New File wrote to the shared workspace so the change never showed up in the chat, and deleting several selected files or downloading a folder or a selection as a zip failed. All of these now use the chat's own workspace, like the rest of the file browser.
Fixes#29965
Reindexing memories (the admin "Reindex Knowledge and Memory Vectors" button, a user resetting their memory vectors, or the automatic reindex after switching to an embedding model with a different vector size) ignored the "Embedding Concurrent Requests" setting and sent one embedding request per memory at once. With a rate-limited embedding provider, most of those requests came back as 429 errors. Reindexing memories now respects that setting and the embedding batch size, like knowledge file uploads already do.
Fixes#32212
* docs: start 0.12.1 changelog
* docs: changelog for MCP connection error logging and translation fixes
* docs: changelog for plain HTTP, Redis Sentinel and external citation fixes
* docs: update 0.12.1 date
* docs: changelog for external apps in channels, call wake lock and citation and tool fixes
* docs: changelog for automation schedule fix, shared chat calls and app connection errors
* docs: changelog for chat search speedup, VRM 0.x rest pose and translations
* docs: changelog for sidebar folder links and app profile pictures
* docs: changelog for new default follow-up prompt
* docs: changelog for follow-up generation and app connection status
* docs: add translation updates to 0.12.1 changelog
* docs: update 0.12.1 date, app replies and translations
* docs: changelog for multi-model message pairs and fixes from 2026-10-13
* docs: changelog for app message cards and link buttons
* docs: changelog for large skill previews
* docs: changelog for skill search tool, admin model toggles and Ask and Explain fix
* docs: changelog for code block results and moved calendar reminders
* docs: changelog for MCP OAuth behind Cloudflare
* docs: update 0.12.1 date
* docs: changelog for revision compare, channel muting, chat participants, folder previews and avatar controls
* docs: changelog for compare text in chat and model editor and typed channel mentions
* docs: changelog for .skill export and terminal file compare
* docs: changelog for Azure Realtime calls, voice chat titles, group webhooks and temporary chat files
* docs: changelog for analytics tokens, Realtime input parameters, SCIM sign in and more fixes
Users with a notification webhook for channel messages received no webhook when someone posted in a group channel or direct message they belong to. Only regular channels they had been given access to sent it. Members of group channels and direct messages now get the webhook too, and muting one of these channels stops the webhook except for messages that mention them.
Fixes#32403