[GH-ISSUE #14927] issue: Placeholder Value Not Updating in Sequential __event_call__ Prompts #17407

Closed
opened 2026-04-19 23:09:04 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @Buckler89 on GitHub (Jun 12, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/14927

Originally assigned to: @jackthgu, @ayanahye on GitHub.

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.14

Ollama Version (if applicable)

No response

Operating System

ubuntu 22.04

Browser (if applicable)

Chrome

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

In the Action function, when __event_call__ is invoked inside a for loop to ask the user for multiple pieces of information, the placeholder value is being overwritten by the previously provided user input.

Actual Behavior

Each time the event is called, the placeholder should contain the value defined in the code.

Steps to Reproduce

Create a function like the following:

from typing import Optional, Callable, Awaitable, Any

class Action:
    async def action(
        self,
        body: dict,
        __event_call__: Optional[Callable[[Any], Awaitable[Any]]] = None,
    ):
        # Define the 3 placeholders to ask for
        fields = ["name", "date", "project"]
        collected: dict = {}

        for field in fields:
            # Ask the client to provide a value for each placeholder
            if __event_call__:
                response = await __event_call__({
                    "type": "input",
                    "data": {
                        "title": f"Enter value for '{field}'",
                        "message": field,
                        "placeholder": "…"
                    }
                })
                collected[field] = response

        # Return the collected values (you can omit this if not needed)
        return {"collected": collected}

Assign the function globally and start the conversation.
A new button will appear in the AI's response (which will call the function).

Test its behaviour.

Logs & Screenshots

The first placeholder is displayed as expected:

Image

However, the subsequent inputs do not show the correct placeholder values:

Image

Additional Information

No response

Originally created by @Buckler89 on GitHub (Jun 12, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/14927 Originally assigned to: @jackthgu, @ayanahye on GitHub. ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.14 ### Ollama Version (if applicable) _No response_ ### Operating System ubuntu 22.04 ### Browser (if applicable) Chrome ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior In the `Action` function, when `__event_call__` is invoked inside a `for` loop to ask the user for multiple pieces of information, the placeholder value is being overwritten by the previously provided user input. ### Actual Behavior Each time the event is called, the placeholder should contain the value defined in the code. ### Steps to Reproduce Create a function like the following: ```python from typing import Optional, Callable, Awaitable, Any class Action: async def action( self, body: dict, __event_call__: Optional[Callable[[Any], Awaitable[Any]]] = None, ): # Define the 3 placeholders to ask for fields = ["name", "date", "project"] collected: dict = {} for field in fields: # Ask the client to provide a value for each placeholder if __event_call__: response = await __event_call__({ "type": "input", "data": { "title": f"Enter value for '{field}'", "message": field, "placeholder": "…" } }) collected[field] = response # Return the collected values (you can omit this if not needed) return {"collected": collected} ``` Assign the function globally and start the conversation. A new button will appear in the AI's response (which will call the function). Test its behaviour. ### Logs & Screenshots The first placeholder is displayed as expected: ![Image](https://github.com/user-attachments/assets/278a8b81-52fc-4558-9f5c-23ceac1b5873) However, the subsequent inputs do not show the correct placeholder values: ![Image](https://github.com/user-attachments/assets/c6c47135-4f27-4633-88bf-d80da8088a33) ### Additional Information _No response_
GiteaMirror added the bug label 2026-04-19 23:09:04 -05:00
Author
Owner

@tjbck commented on GitHub (Jun 17, 2025):

Should be addressed with fb26be7dd6 in dev, testing wanted here!

<!-- gh-comment-id:2979815173 --> @tjbck commented on GitHub (Jun 17, 2025): Should be addressed with fb26be7dd6295a429157e7b047ad1eb5b97e4003 in dev, testing wanted here!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#17407