Merged
Conversation
A recurring support question from pipeline authors: their agent-backed
pipe (LangChain, LlamaIndex, custom planner) duplicates its response
~30 times in the chat because it emits delta.tool_calls while also
executing the tool internally. The docs didn't cover any of:
- What a Pipe is actually allowed to yield when streaming (plain
strings vs OpenAI-format chunks, where finish_reason goes).
- The semantics of delta.tool_calls ("please execute this for me,
client") and why emitting it from a self-contained agent triggers
the CHAT_RESPONSE_MAX_TOOL_CALL_RETRIES retry loop.
- The <details type="tool_calls"> content-embedded block — the
exact shape Open WebUI's own server-side tool path emits after
internal tool execution, which agent pipes can emit themselves
to render a proper "Called <tool>" chip without triggering the
execute-and-retry loop.
Expanded docs/features/extensibility/pipelines/pipes.md (previously a
22-line stub) with:
- "Streaming response format" section covering plain string yields,
chunk-dict yields, and the "single terminating finish_reason: stop
chunk at the end" rule.
- "Self-contained agents and delta.tool_calls" section with the full
rule of thumb (model wants OWUI to run the tool vs. agent already
ran it), a minimal end-to-end pipe example, and a LangChain-
specific loop mapping.
- Link to the source issue (#23957) for anyone debugging the exact
duplication symptom.
Also added a :::caution cross-reference from the Function Pipes page
(plugin/functions/pipe.mdx) pointing at the same section, since the
pattern applies identically to in-process Pipes that own their tool
execution — it's not a Pipelines-only concern.
https://claude.ai/code/session_01K54Vwr1NMczgh9vmQkWe17
A user on r/OpenWebUI flagged that the Native Mode enable steps don't match the current UI. Two mismatches in the sections I added: - The top-right control on Admin Panel → Settings → Models is labeled "Settings", not "gear icon (⚙️)". Renamed in both tools/index.mdx (Enable Native Mode list + the tip callout) and essentials.mdx. - The section inside the global-settings panel is called "Model Parameters", not "Advanced Parameters". Fixed in the same three places plus the per-model override path (also "Model Parameters" there). Per-chat Chat Controls still say "Advanced Params" in the UI so that path is unchanged. Tightened the phrasing there slightly to say "open Chat Controls (right sidebar)" rather than "click the ⚙️ Chat Controls icon" since the exact per-chat control shape can also shift. https://claude.ai/code/session_01K54Vwr1NMczgh9vmQkWe17
Classic298
pushed a commit
that referenced
this pull request
Apr 22, 2026
Recurring support question after the 0.8.x → 0.9.x upgrade: "my NFS / CephFS / Azure Files SQLite setup was fine, now every request hangs and I see QueuePool limit of size N overflow M reached, timed out". The docs already said "don't do that" in several places but didn't explain WHY it flipped from tolerable to fatal, so operators kept tweaking DATABASE_POOL_SIZE hoping for a fix that wasn't there. Expanded four existing pages (no new page) with the mechanism explainer, each scaled for the page it's on: - getting-started/advanced-topics/scaling.md, Step 1 — "Switch to PostgreSQL": added a subsection "Why SQLite on network storage fails the moment you scale (or upgrade)" covering fsync latency (local NVMe ~100µs vs NFS 50-500ms), the sync (0.8.x, thread-pool- throttled) vs async (0.9.x, pool saturation) difference, the WAL+mmap-on-NFS caveat, and why bigger pool sizes don't help. Ends with the three concrete paths: migrate to Postgres / move DB to local SSD / temporary workaround. - troubleshooting/performance.md, Disk I/O Latency (SQLite & Storage) section: added a "Why the async backend makes network-storage SQLite fail suddenly" subsection right after the danger callout. Includes the fsync-latency table, the sync-vs-async contrast, the QueuePool error message verbatim, the WAL-on-mmap issue, and the one-line summary. - reference/env-configuration.mdx, DATABASE_URL and DATABASE_POOL_SIZE: added two warnings on DATABASE_URL (SQLite only on locally-attached SSD/NVMe; multi-replica REQUIRES Postgres) and one warning on DATABASE_POOL_SIZE explaining that tuning the pool does not fix the underlying fsync problem on network FS. All three link back to the performance and scaling explainers. - troubleshooting/multi-replica.mdx, "Database Corruption / Locked Errors" section: expanded the symptoms list to include the exact QueuePool error message + the stall patterns, rewrote the cause to cover SQLite-on-NFS as the common root cause (not just "multiple replicas"), cite SQLite FAQ #5 for upstream's own position, and ordered the solutions: Postgres migration first, local-SSD move second, explicit "don't just increase DATABASE_POOL_SIZE" third, temporary damage-control vars last. No new standalone troubleshooting page — per the user's instruction, this is spread across the existing guides where operators already land when they hit the symptom. https://claude.ai/code/session_01K54Vwr1NMczgh9vmQkWe17
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.
No description provided.