gradio-app/gradio

4.28.0 and later -- breaking change so components being updated in queued function calls are not interactable

Closed this issue · 4 comments

Describe the bug

When I use a queued function which updates one or more components, those components are no longer interactable (example highlighting text in a label or interacting with a plotly chart). In 4.27, this was still functional and I tried searching through the 4.28 changelog to figure out why but haven't found anything.

Have you searched existing issues? 🔎

  • I have searched and found no existing issues

Reproduction

import gradio as gr


with gr.Blocks(theme=gr.themes.Soft()) as demo:
 
    title = gr.Label( "hello" )

    changeTitleBtn = gr.Button("Change Title")

    changeTitleBtnEvent= changeTitleBtn.click(
        fn=lambda: {
                title: "goodbye",
        inputs=[
        ],
        outputs=[
            title,
        ],
        every=0.5,
    )

if __name__ == "__main__":
    demo.queue(max_size=20)
    demo.launch()

Screenshot

No response

Logs

No response

System Info

Gradio Environment Information:
------------------------------
Operating System: Linux
gradio version: 4.29.0
gradio_client version: 0.16.1

------------------------------------------------
gradio dependencies in your environment:

aiofiles: 23.2.1
altair: 5.3.0
fastapi: 0.111.0
ffmpy: 0.3.2
gradio-client==0.16.1 is not installed.
httpx: 0.27.0
huggingface-hub: 0.23.0
importlib-resources: 6.4.0
jinja2: 3.1.4
markupsafe: 2.1.5
matplotlib: 3.8.4
numpy: 1.26.4
orjson: 3.10.3
packaging: 24.0
pandas: 2.2.2
pillow: 10.3.0
pydantic: 2.7.1
pydub: 0.25.1
python-multipart: 0.0.9
pyyaml: 6.0.1
ruff: 0.4.3
semantic-version: 2.10.0
tomlkit==0.12.0 is not installed.
typer: 0.12.3
typing-extensions: 4.11.0
urllib3: 2.2.1
uvicorn: 0.29.0
authlib; extra == 'oauth' is not installed.
itsdangerous; extra == 'oauth' is not installed.


gradio_client dependencies in your environment:

fsspec: 2024.3.1
httpx: 0.27.0
huggingface-hub: 0.23.0
packaging: 24.0
typing-extensions: 4.11.0
websockets: 11.0.3

Severity

I can work around it

Well, regression again. This is important when users want to interact with elements inside chat interface while the function is queued and streaming.

Thanks for reporting @sbarman-mi9 @howardwu1, we have a fix here: #8261

If you'd like to try it before we release this, you can install from the instructions in the PR.

Thanks @abidlabs! It works! Closing now

Let me keep this open until the PR is merged in!