Skip to content

[BUG] Infographic output is silently invisible when the target message contains tool-call output #110

Description

@Gachilleus

Plugin Type

Action

Plugin Name

Action - Smart Infographic

Plugin Name (if not in list)

No response

Description

Bug: Infographic output is silently invisible when the target message contains tool-call output

Plugin: Smart Infographic (v1.6.2 / v1.6.3)
Environment: Open WebUI (self-hosted, Docker), backend model served via llama.cpp, model uses function/tool calling (e.g. write_note, calculate_timestamp) in Responses-API style

Summary

When Smart Infographic is run on an assistant message that was generated with tool/function calls (i.e. the message has a populated output array in addition to content), the plugin completes successfully on the backend (file is generated, uploaded, and the message is persisted), but nothing is ever visible in the chat UI — not the infographic image, not even the plugin's own error message.

Root cause (confirmed via direct DB/API inspection)

The plugin always writes its result (status text + markdown image tag, e.g. ![📊 Infographic](/api/v1/files/<id>/content), or an error message) into the message's content field. This is correct.

However, when the target message also has a non-empty output array (populated because the model made tool calls before its final answer), the Open WebUI frontend appears to render only the output trace for that message, and never falls back to displaying content. As a result, whatever the plugin writes into content — success or failure — is completely invisible in the UI. Only the plugin's statusHistory toast log (e.g. "Bild erstellt!", "Verarbeitung fehlgeschlagen.") is visible; the actual generated content/image is not.

I confirmed this by fetching the raw chat JSON via GET /api/v1/chats/<chat_id>. The affected message's content field contained a fully valid, well-formed markdown image reference to a file that was verified to be a valid, intact PNG when fetched directly via /api/v1/files/<id>/content. The image was never displayed in the chat, with or without a page reload.

Suggested fix directions

Since this sits at the boundary between the plugin and Open WebUI core rendering logic, I see two possible fixes (not mutually exclusive):

  1. Open WebUI core: render content in addition to output when both are present on a message, instead of treating them as mutually exclusive.
  2. Smart Infographic plugin: instead of relying solely on writing to content, also append a new entry to the message's output array (matching the structure the frontend expects for these tool-call-style messages), so the result is guaranteed to be visible regardless of which field the UI prioritizes.

Happy to provide the full raw chat JSON, backend logs, or further reproduction steps if useful — I have a fairly complete trace across several reproduction attempts.

Steps to Reproduce

  1. Use a model configured with tool calling (e.g. a write_note / note-taking tool, or any Responses-API-style tool use) so that assistant replies include a populated output array.
  2. Ask a question that causes the model to call at least one tool before its final text answer.
  3. Click the Smart Infographic action on that assistant message.
  4. Observe: backend logs show successful completion (Infographic generation completed in image mode, file upload succeeds, Message persisted successfully!), but nothing appears in the chat — not the image, not an error banner.
  5. Fetch the chat via the API directly and confirm the content field does contain the expected markdown (image tag or error text).
  6. As a control: run the same action on a message from a plain, tool-free response (only content, no output) — the infographic displays correctly.

Why this isn't a config/environment issue

  • Confirmed reproducible in a fresh chat with all other Action plugins disabled.
  • Confirmed reproducible in Incognito mode (rules out browser extensions).
  • Confirmed the underlying file is valid and correctly uploaded/referenced (fetched directly, opens fine).
  • Confirmed via raw API response that content contains correct markdown — the issue is purely a rendering/display gap tied to the presence of output.

OpenWebUI Version

v0.10.2

Operating System & Container

Minisforum UN890PRO
UNRAID 7.3.2

Error Logs (Optional)

2026-07-25 17:13:33.908 | ERROR    | open_webui.routers.files:_process_handler:221 - Error processing file: 08150376-d213-4bf5-9c33-51804adcd890

Additional Information (Optional)

No response

Checklist

  • I have searched for duplicate issues
  • I have provided clear reproduction steps
  • I have mentioned OpenWebUI version and OS/container info

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions