Skip to content

0.11.1 - #1349

Merged
Classic298 merged 89 commits into
open-webui:devfrom
Classic298:dev
Aug 11, 2026
Merged

0.11.1#1349
Classic298 merged 89 commits into
open-webui:devfrom
Classic298:dev

Conversation

@Classic298

Copy link
Copy Markdown
Member

No description provided.

Covers the settings and behaviour changes that administrators and operators need to know about before upgrading, written against the code rather than the changelog.

ENABLE_ORJSON now reaches the database JSON columns, outbound Ollama and Anthropic request bodies, built-in tool results, the permission lookup and Valkey and Oracle 23ai chunk metadata, so the reference entry, the scaling guide and both performance pages describe what the flag actually covers today. Non-ASCII is written raw rather than escaped, and both encoders read each other's output, so switching it on or off needs no migration.

TASK_MODEL_PARAMS gives administrators the generation parameters used for titles, tags, follow-ups, search queries and conversation summaries, replacing the fixed token limit that could cut a summary short.

ENABLE_RAG_CSV_SUMMARY prefixes CSV content with its row count, data row count and column names so the model sees the shape of the table alongside its contents.

DEFAULT_INTERFACE_SETTINGS sets system-wide defaults for the interface options in Settings, with each person's own choices still taking precedence, alongside the new setting for switching off sidebar chat previews.

AIOHTTP_CLIENT_ASYNC_DNS_RESOLVER returns to system name resolution by default, which removes the intermittent lookup failures that surfaced as a misleading model not found message, and WEBSOCKET_EVENT_CALLER_TIMEOUT now reports a timeout for an unanswered tool prompt instead of an empty reply.

Single sign-on settings supplied through the environment are shown as read-only in the admin panel with the setting that controls them named, and sign-in through providers that add vendor-specific claims to the token completes instead of failing as a bad email or password.

OpenSERP can be selected as the web search engine from the admin panel, and a link that cannot be read now names the link while a refused YouTube transcript explains why and points at the proxy setting.
Adds a Terminal Contexts page under orchestration covering the per-context availability and workspace scoping an administrator sets for chats and for automations separately, the Shared, Per chat, Per automation and Off options, the fact that both rows default to Shared, and the orchestrator version needed before per-context workspaces do anything rather than silently behaving as shared. Direct Open Terminal connections have no contexts and always resolve to the same workspace.

Records the failure responses of the web content endpoint so a caller can tell the three cases apart: a link that could not be fetched or parsed names the URL it was given, a YouTube URL reports why its transcript was refused, and only a genuine storage failure mentions the knowledge base. The retrieval page now points at the same troubleshooting entry instead of implying the attempt silently produces nothing.

Corrects the CSV summary notes to say which extraction engines never reach the built-in parser, and states plainly that the Default label in Settings and Interface appears on switches only while every other inherited option tracks the instance default in the same way without a label.

Notes that an interactive event call returns a dict carrying an error key when the browser cannot answer, either because the tab disconnected or because the configured caller timeout elapsed, so a plugin checks for that key before using the result.
…d CSV retrieval behaviour

Carries the per-context terminal settings into the pages an administrator actually reads: connecting a terminal, the terminals overview, the file browser, multi-user setup and the Docker deployment tab now describe when a terminal is offered in chats and in automations, and whether a workspace is shared or created per chat or per automation. Temporary chats and channel chats have no stored chat record, so a terminal scoped per chat is unavailable there, and the URL parameter and automation pages say so.

Records what reindexing a knowledge base now does: the knowledge base collection and the per-file collections are both deleted and rebuilt from the stored text, so attaching a single file afterwards finds its content again. Reindexing never parses the original file a second time, and a file with no stored content is reported instead of being indexed empty. The Milvus and Qdrant multitenancy notes are corrected to say which vectors a reindex migrates.

Adds the CSV table summary to the retrieval guide and the environment reference, with the exact line it prepends, how the row count, data row count and column names are derived, and which extraction engines never reach the built-in parser and so never produce it.

Documents why attaching a link or a YouTube video can fail, with the message each cause produces, and records the failure responses of the web content endpoint so a caller can tell a failed fetch from a failed save.
…t search behaviour

Chat search now matches every word of a query in any order, drawing words from the title or from any message, and lists exact phrase matches first. On default SQLite installations the search only ever read an older storage location, so the messages of ongoing conversations were invisible to it, and the archived chats guidance to restore a chat before searching its content is removed because it no longer applies.

Records that removing someone's memory permission stops their stored memories reaching the model, and that memories are now handed over in a fixed order with entries sorted alphabetically, which is what lets a provider reuse its work between turns instead of reprocessing the conversation on every reply.

A task handed to a sub-agent can carry the attachments it needs, so an image or document from the conversation reaches the sub-agent rather than arriving as a reference it cannot open. Conversations started by automations, timers, sub-agents and channels report their token usage like any other chat.

Files and folders in the terminal file browser that cannot be changed are labelled read-only, with uploading, editing, renaming, moving and deleting unavailable rather than failing at the moment they are attempted.
…coming release

Sending a message before its attachments have finished uploading now queues it and sends it once they are ready, and each queued message shows the progress of its own attachments, so the send no longer fails outright.

A note whose content was stored as structured data rather than text no longer breaks the notes page, and opens with that content shown as a formatted code block.

Records that attaching a conversation shared with you, directly or through a shared folder, brings its content along, and the permission notes now say which capabilities are checked when a chat is filed into a folder.
…orting

A task handed to a sub-agent can now carry specific attachments from the parent conversation, chosen by file id. A sub-agent that is given none starts with no attachments at all, where it previously inherited everything attached to the parent chat, and an id that is not attached to the parent fails the call before any sub-agent runs. Images handed over this way reach a vision model as images rather than as a reference it cannot open.

Revoking the memories permission now stops stored memories reaching the model in every path, including the system context injection that had continued regardless, and the permission is rechecked on the server rather than trusted from the request.

Memories are rendered in a fixed section order with entries sorted alphabetically, so an unchanged selection produces an identical block from one message to the next and a provider can reuse its cached prefix instead of reprocessing the conversation on every reply. The character budget is applied after that sort, so it drops whatever sorts last rather than whatever is oldest, and the caching notes are corrected to match.

Chats started by automations, timers, sub-agents and channels report token usage like any other chat, because the request for it is made on the server for every caller when the model has the usage capability enabled. Non-streaming requests are unaffected.
…notes to observable behaviour

The user table's single OAuth subject column was replaced by a JSON field keyed by provider in v0.6.41, so one account can hold subjects from several identity providers at once. Databases still older than that when they were upgraded on a v0.9.6 or newer build had the value written as text rather than as an object, which locked the affected accounts out of signing in; a migration rewrites those rows on startup and leaves every other row alone. The SCIM linking notes are corrected to match the field that actually exists.

The faster JSON encoder notes now describe what an operator can observe, saving and opening chats, signing in, knowledge base searches and the requests sent out to model providers, rather than the internals behind each. The Valkey and Oracle 23ai vector store sections say plainly that stored chunk details are written on upload and read back on every search, which is the work the setting speeds up.
…the sharing permission defaults

System-wide defaults for the interface options now have a page of their own under Administration, alongside Banners and Webhooks, with the full list of options an administrator can set, what each one does and the value it falls back to when nothing is configured. A person's own choice always wins, anything they have never touched keeps following the instance default and moves with it when that default changes. The getting-started settings page keeps a short pointer to it.

Public sharing of tools and notes is documented as switched off by default, which is what the code actually does. Instances upgraded from older versions could show both as enabled in the admin panel while the server denied them, and saving any unrelated permission wrote that phantom value in for real, so the sharing notes now say to re-check those two toggles after an upgrade. The documented defaults and types of the affected permission variables are corrected to match the code.
Name lookups go through the operating system again by default, which removes the intermittent failures that surfaced as a misleading model not found message. The faster c-ares resolver stays available and is worth trying, since it takes a delay out of the front of every outbound request, with the Windows and Docker failure modes named so nobody switches it on blind and the reason its dependency is pinned spelled out for anyone building a custom image.

An interactive event call that goes unanswered now returns an error value rather than raising, so the plugin pages no longer tell authors to wrap the call in a try block for a timeout that never raises, and the exact value a plugin receives is written down. Waiting too long no longer drops a tab that is still open.
…ngle sign-on settings

Sending a message before its attachments have finished uploading now queues it and sends it once they are ready, with each queued message showing the progress of its own attachments and the send button held until they settle. A failed upload holds the queue until that entry is edited or removed, and the behaviour applies whether or not the message queue setting is enabled.

Any conversation you can read can be attached to a chat of your own as context, whether it was shared with you by name, through a group, set to public or sits in a folder shared with you. Referencing a chat had no documentation at all, so it is written up alongside: what the picker offers, that dragging works for chats that are not yours, and that the live conversation is used rather than the snapshot behind a share link.

Single sign-on settings supplied through the environment are now shown as read-only in the admin panel with the variable that controls them named, instead of accepting edits that were discarded on the next restart. Sign-in through a provider that adds parameters of its own to the token header completes rather than failing with a message claiming the email or password was wrong.

Corrects stale admin panel paths on every page touched here. The settings sidebar groups tabs under headings, and those headings are not part of the path.
Says plainly that the CSV table summary is off by default and that a restart is needed after turning it on, since it is read from the environment and has no admin panel control. What remains on the page is the summary line itself, that the column count follows the widest row, that the delimiter is detected so semicolon separated files work, that the line is always present under Using Entire Document, which extraction engines produce no summary at all and that files parsed before the setting was turned on need re-uploading.

The reindex notes end on the outcome rather than the bookkeeping: after rebuilding, attaching one file from a knowledge base to a chat on its own retrieves the same content as searching the knowledge base it belongs to.
The settings sidebar groups its tabs under headings, and those headings are not part of the path a reader clicks. Paths written as Settings > Admin > AI > Models, Settings > Admin > System > General or Settings > Admin > Tools > Web Search name a level that does not exist, so they are now written as Settings > Admin followed by the actual tab.

Two of them named the wrong destination as well. External tool servers are configured under Integrations rather than under a Tools tab, and the tab for running code is called Code Execution rather than Code Interpreter.
…he admin path sweep

The system-wide defaults for the interface options now have a page of their own under Administration, alongside Banners and Webhooks, carrying the complete list of options an administrator can set with the label each one has in the interface and the value it falls back to when nothing is configured. A person's own choice always wins, anything they have never touched keeps following the instance default and moves with it when that default changes, and an option nobody has touched is marked as such next to its switch. The page also covers locking the interface page entirely through the settings permission, and the fact that the environment variable reaches settings that the admin panel does not expose.

The independently maintained Interface Defaults plugin listed under the ecosystem pages is noted as largely covered by the built-in feature now, with the behavioural difference stated so a reader can choose between them.

Completes the admin panel path correction for the pages that write their paths with arrows rather than angle brackets.
…terminal browser

Changing someone's role now ends their live sessions however the change was made, from the admin panel, a directory sync, an identity provider or a trusted header, so permissions from the old role cannot linger, and the browser reconnects on its own. Deleting an account behaves the same way, and the behaviour holds across replicas.

Accounts on instances coming from a version older than 0.6.41 could be locked out of signing in entirely, because an upgrade step wrote their single sign-on identity in a form the application could not read back. A repair runs on startup and needs no manual work, and the troubleshooting entry names the exact symptom, the log line and the affected population so an administrator can recognise it. The user table reference is corrected to the field that actually exists.

Task model configuration now has a page of its own under Administration: which model runs background work, the parameters those requests use and the per task switches. Setting any parameter replaces the built in output limit entirely, so a limit has to be set explicitly or there is none.

Merging several models' answers uses one of the models being compared and never the task model, so the multi-model page no longer tells readers to configure a task model for it.

Files and folders in the terminal file browser that cannot be changed are marked read-only, with creating, uploading, renaming, moving, editing and deleting unavailable rather than failing when attempted.
The environment variable reference and the database schema reference both announced which release they were current with, and both still named the previous one. Every other mention of that version is a factual statement about when something shipped or changed, so those are left alone.
… previews

Typing the model command on its own reports which model the conversation is using, following it with a model id switches to that model, and choosing it from the slash menu opens the model picker with its search box focused. The four built-in command names are effectively reserved, so a saved prompt sharing one of those names is intercepted when a user types it out and sends it, which the prompts page now says.

A writing block produced by a model is titled with its subject and shows the recipient beside it when the model supplies them, instead of every block reading the same way.

Word documents open as pages with their headers, footers, footnotes and embedded images intact and can be zoomed, falling back to simpler rendering when a file cannot be laid out. Presentations open in a viewer with a thumbnail strip, zoom and panning. The slide preview is an approximation, so the file should be downloaded and opened in its own application when the exact rendering matters.
When configuration persistence is switched off globally, that setting is the one in charge, so turning on the single sign-on specific persistence makes the section editable again without making the edits last. Both have to be on to manage single sign-on from the admin panel, and the pages now say so rather than leaving an administrator to work it out from the symptom.

The list of selectable web search engines was missing three of the engines the interface offers, so all three are added with the variables each one needs.
… without quoting it

The task model parameters panel shows several controls that have no effect on background requests, so both the reference entry and the task models page name them outright rather than leaving an administrator to set them and wonder why nothing changed.

The CSV table summary is described by what it contains, the total row count, the data row count and the column names taken from the header, instead of reproducing the line verbatim in two places where it would go stale the moment the wording changes.

Chat search now says how a query is matched: every word has to appear, in any order, drawn from the title or from any message, with exact phrase matches listed first and the rest by how recently they were updated. The filter prefixes are corrected to the forms that actually do something, since a prefix written without a value is discarded and filters nothing.
Messages the configured log level discards are no longer assembled at all, so the log level is now a processing cost lever rather than only a verbosity control. The logging guide says which messages each level skips, including the retrieval results written once per knowledge base request that only a level above the default drops, and the performance guide carries it alongside the other tuning options with the trade-off spelled out: raising the level to reduce work also removes the informational lines a log aggregator is usually set up to collect.

The character budget for context memories is described as a plain cut off, since the previous wording promised that older or lower priority entries are the ones dropped, which is not what happens.
…in paths

The capabilities table on the models page was missing five of the toggles the model editor actually offers, so all five are documented with the default each one carries. Usage is the only capability that is off unless someone turns it on, and it is what makes a model report its token counts, so the analytics page and the chat completions reference now say where those figures come from and that scheduled and delegated runs land in the same totals.

Automations, timers and channels each carry a line saying their runs report token usage like any other chat, so a reader on one of those pages does not have to find the central explanation to learn it.

A task handed to a sub-agent starts with no attachments unless it is given specific files, where it previously inherited everything attached to the parent conversation, and asking for a file that is not attached fails the call before any sub-agent runs.

The remaining sidebar grouping labels are removed from admin panel paths, so every path now names a tab that exists.
…equests

The orchestration section now uses whole sidebar positions with no ties, where two pages previously shared one and fell back to alphabetical order, and the section's own reading list is reordered to agree with the sidebar.

Terminal traffic authenticates as the person using it when the connection is set to session authentication, while the policy, lifecycle, status and refresh requests take the orchestrator's admin key and never a user token. That split is how the two products divide the work, so the admin key stays configured even when user authentication is in use.

The documented refresh and stop request bodies carry the context field, with the accepted values and the difference between them: omitting it on a refresh matches every context, while omitting it on a stop targets the shared terminal only, so terminals scoped to a chat or an automation survive.
…nformant providers

openGauss works as a vector store now, where previously a deployment configured for it failed the moment it touched the store, so it is documented for the first time: added to the list of selectable vector databases, with its own section covering the connection URL, the vector length used when the store is created and the connection pooling settings, alongside the same non-core notice its neighbours carry.

Connections using the Responses format now survive two ways a provider can deviate from it. A provider that closes a stream reporting no content no longer wipes the reply that was already streamed, and fragments arriving before the part they belong to are skipped instead of cutting the answer short. For anyone calling the API directly, that second case also meant the response body ended without its terminator and the filters that run when a message finishes never ran. The filter guidance is corrected to match, since an edit made only at the closing event never reaches the saved message when a provider closes with nothing in it.
…ls in line with the interface

Paths written as Admin Settings followed by a tab are the same destination as Settings then Admin then that tab, so they are written the one way throughout. Paths to the admin panel's own top-level pages are a different destination and are left as they are.

The sharing permission table now uses the labels the admin panel actually shows, so a reader can match a row to the switch in front of them. The claim that the group sharing default does not persist is removed, verified against the code as no longer true.

Records that a knowledge base search no longer holds up the worker that issued it, so a slow vector store costs the chat that searched rather than everyone connected to that worker, and that the timeout setting stops a request being held open rather than stopping the whole application from stalling.

A message sent while the shared model list is being rebuilt no longer fails or runs against a mix of old and new entries. That applies to chats using a person's own direct connections on a Redis-backed deployment, which is where the model list is shared between replicas.
A provider whose reply only takes its final shape at the very end no longer leaves the finished answer out of the conversation, so the model can see its own previous reply on the next turn.

An unusually large piece of a response now passes through in full rather than breaking the response, which was possible on default settings because the safeguard only applied when a size limit had been configured. The reference entry says which values disable the limit and what the trade-off is when nothing is set.
…yter output

Anyone running the released 0.11.0 with the faster JSON encoder switched on can lose pieces of a streamed reply when the model's output contains one of three rarely used line separator characters, because those were passed through raw and split the response where it was read. The troubleshooting entry names the trigger, says upgrading fixes it and gives switching the encoder back off as the interim workaround, and it is reachable from the existing symptom list for text going missing from responses.

Output coming back from a Jupyter server for code run in chat is handled by the same encoder, so printed output and generated charts appear faster with it enabled, which is now recorded where the engine is configured and in the coverage breakdown.
…r tool authorization

Two reference pages stated the opposite of what the code does: they said outlet filters are skipped for callers that omit the chat and message identifiers, and that they only run on non-streaming requests. Outlet filters run for direct API callers by default on both the streaming and non-streaming paths, and those identifiers decide where the response goes rather than whether filters run. Both pages are corrected, and the claim that a filtered payload comes back in the response body is unchanged because it was already right.

Authorizing a tool server's external account now completes only for the person who started it and only in the browser session that started it, and signing out cancels an authorization still in progress. The three ways it can be refused are listed with the message each one produces.

The Windows start script generates the secret key it needs on a fresh installation and copes with an installation path containing spaces. The key generation reference now covers all three ways a key is created, including the Windows one, rather than describing only the others.

The permission tables now use the labels the admin panel shows, across every section rather than only sharing, with the cross-references between rows updated to match.
The chat permissions table was missing a toggle the admin panel offers, and three workspace rows sat outside the table they belonged to, so they rendered as literal text on the published page rather than as rows. Both are fixed.

The tool server pages describe authorizing an external account as something bound to the person who started it and the browser session they started it in, with the reasons it can be refused and what each one looks like, and the stale troubleshooting heading now matches the message the application actually produces.
The permission entry said the attach webpage option is hidden from people who do not have the permission. The option stays in the menu, greyed out with a tooltip explaining why, and an attach sent anyway is refused, so the entry now describes what a user actually sees.

The permission tables now match the interface row for row, with the parent and dependency markings applied consistently to the skills rows the same way they are to models, prompts and tools.
Personal usage figures cover a fixed two year window for every account, rather than starting from the date the account was created, and the analytics dashboard now says what a custom range does before both dates are filled in: it sits idle rather than loading indefinitely, and the dates are remembered between visits so an incomplete range shows empty figures on return.

The streaming entry no longer claims the characters that trigger it are common in documents. They are rare in ordinary text, and the entry says so, so nobody reads it as a likely cause.
…y leaves behind

The disposition for CVE-2025-15603 describes the code as it stood when the record was assessed, so it is put back exactly as it was. A disposition is a record of an assessment at a point in time, and rewriting it to track later code changes destroys what it is for.

The token revocation notes said that deactivating an account does not immediately block access, which reads as though a deactivated account keeps working. What is actually true is narrower: the token issued to that account is not revoked, and the account's role is rechecked on every request. Both pages now say that instead.

Document the secret key generation settings, including that the length is counted in bytes by two of the start methods and in characters by the third, that the key file setting is ignored by one of them, and that a value landing on a key of exactly forty four characters stops Open WebUI starting because a key that length is used directly as encryption material.

The Windows startup failure has its own troubleshooting entry, including the part that is easy to miss: an empty key file left behind by the earlier failure has to be deleted, because the script only generates a key when no file is there at all.
The notes page claimed the chat beside a note gives you everything the chat input offers. Voice mode is the exception, and its button is no longer shown there because it never worked in that position, so the page names the exception and points at a normal chat for a hands free conversation. Dictation is unaffected and still works from the microphone button.
The button that enlarges the message box appears once a prompt runs onto a second line, which is not something a reader can guess, and had no mention anywhere in the docs. The chat features list now says when it appears, where it sits, what the full height editor gives you, that the text stays in step with the message box as you type and the three ways to close it again.
The page said the author is left unresolved so their name and picture do not appear. What actually happens is worse than an omission: the name beside the messages reads as though the reader wrote them, and the picture is the default avatar. Anyone deciding whether to hand out an open link needs the accurate version.
The overview panel had no description anywhere, only two passing mentions about whose name sits on a node. The chat features list now covers where the panel lives, what a node shows and what each of its three controls does, so someone looking at it has something to look up.
Every em dash used as punctuation is replaced by a comma, or by a colon where it separated a label from its explanation in a table cell. Two are left alone because changing them would make the text wrong: one quotes a label shown in the interface, and the other sits inside a code example. Em dashes inside fenced code blocks are untouched, since those are terminal output and diagrams rather than prose.
…criptions

Setting a custom parameter on a model no longer discards the custom parameters defined in the global defaults; the two combine name by name. Parameters carried by a request are kept rather than being overwritten by the model's saved settings, which the API reference and the chat parameter pages now describe, including the one setting that still overrides a request.

A tool parameter description that runs over several lines reaches the model in full, so the tool development guide covers how a description is read from a method docstring and where it stops.
The page said that setting a default to the value someone had already chosen returns their option to being inherited. It does not. An override is released when that person saves their settings, compared against the defaults as they stand at that moment, so their choice stays pinned until then and a later change to the default still will not reach them. When it is released, every option of theirs that matches the current defaults is released together rather than only the one they changed.
The suggested models named a generation that has moved on, and one of the cloud entries names a model its host has deprecated. The lists now give the current small tier from OpenAI, Google and Anthropic for the external field, and current small local models for the other.

The advice above them no longer names particular models as too slow, since every one of those providers ships a small tier that suits background work; what matters is avoiding a reasoning model, and the reason is stated instead.

Removes the two notes on the chat parameter page about background tasks and API requests.
Leaves the section on what a reader sees rather than enumerating the conditions under which they see less.
The paragraph says which kinds of access let you attach a conversation, which is what a reader needs. What used to happen instead is not their problem.
…aragraph

Says moving rather than filing, and no longer describes how a refusal is displayed.
Two pages linked to it, so those links go as well rather than being left pointing at an anchor that no longer exists. The shorter version on the app installation page stands on its own.
Leaves the bullet saying what the overview panel is and where to open it, without the walkthrough of its nodes, its layout buttons and its viewport behaviour.
Keeps what a reader needs: the message is queued rather than refused, each attachment shows its progress, it sends itself once they are ready, and a failed upload holds the queue until it is edited or dropped. The account of what earlier releases did, the breakdown of how each kind of attachment is drawn and the list of places a file can come from are gone.
Two paragraphs instead of five: what the setting adds, that it is off by default and needs a restart, which extraction engines skip it, and that existing files have to be re-uploaded to get one. The delimiter detection and the note about where the line sits in the file are gone.
The plugin and the note comparing it against the built-in feature are both removed, leaving the two remaining event function entries.
…nition

Connecting a tool's external account is now a paragraph rather than a bullet list and a table of failure messages: the authorization is tied to the account and browser session that began it, signing out cancels one in progress, and anything else reports why and can be retried.
Two paragraphs rather than four plus two lists: the copy actions, then the access button, where it sits, the two levels it grants and when it is available.
The accessibility page goes, along with its entry in the features overview and every link that pointed at it, so nothing is left referring to a page that is not there.

The hardening guide no longer explains how a secret key is generated when none is set, leaving the section on when you have to set one yourself.
The log level section is one paragraph: filtered messages are never built, the level above the default also drops the retrieval results written per knowledge base request, and the most verbose level is the expensive one.

The name lookup section keeps why the queue exists, the variable that removes it, the name sources the faster resolver does not read and what to exercise before trusting it.
… section

The deviations section is two paragraphs: the three ways a provider can depart from the format and what Open WebUI does with each, then the limit, that content the provider never sent cannot be recovered.

The phone navigation section on the app installation page is removed.
The setting is documented as a last resort rather than an option alongside running more containers. Extra workers require everything extra replicas require, a client-server vector database, Redis, PostgreSQL and a single instance running migrations, and give none of what replicas give back: they share one container, so they share its memory limit and its fate, cannot be restarted one at a time and cannot be spread across machines.

The warning sits on the variable's own entry, on the scaling guide where it was presented as a simpler alternative, and in the Redis guide beside the multi-worker example, since that is where someone reads the value and copies it.
…tries

Nine entries in the environment reference lose the detail a reader cannot act on: the enumerations of every control a permission hides, the per-platform account of how a secret key length is counted, the history of what an earlier release did with the resolver, and the values a terminal connection accepts for its contexts, which are covered in full on the Terminal Contexts page and are now pointed at rather than repeated.

The token usage note that had been added to automations, timers, sub-agents and channels is removed from all four. The analytics page already names those four in one place, which is where someone looking at the totals will be.
The open sharing and event caller timeout entries lose their restatements of what the setting is for, keeping what it does, what happens when it is off and what an unusable value falls back to.

The compaction notes drop the account of where a summary is written and the second bullet on generation parameters, which repeated the token limit already covered a line above. Which model writes the summary and what removes the limit are now one bullet.

Removes the model list paragraphs from the multi-replica page.
The upgrade procedure that followed the version skew paragraph referred back to it, so that sentence is reworded to stand on its own.
The raw output note says the bytes differ, who that matters to, that three characters stay escaped so a streamed reply cannot be split, and that switching in either direction needs no migration. The coverage and opt-in bullets on the performance page lose the restatements of the same fallback behaviour described elsewhere on that page and in the reference entry.
The log level and DNS resolver entries on the performance page keep what a reader tuning an instance needs, the lever and when it helps, and send them to the page that explains it rather than restating it. The scaling guide does the same for name lookups, since it was carrying a third copy. Links between them are relative.
Each keeps the symptom, including the log line someone will search for, one sentence of cause and the fix. The account of which upgrade path wrote the value wrongly, the enumeration of what the repair does not require and the full console transcript are gone.
The link and YouTube entry keeps the error a reader sees and the three settings that fix the fixable cases, without the table of every message the transcript library can produce. The single-file entry keeps the symptom, the cause and the two fixes.

The read-only OAuth note becomes one sentence with a link to the variable, since the solutions directly above it already say which setting to use.

Corrects the RAG page, which promised a list of individual messages that is no longer there.
@Classic298
Classic298 merged commit 2554618 into open-webui:dev Aug 11, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant