gr.Dataframe freezes in a Tab after updating from 6.10.0 to 6.11.0+
### Describe the bug
A `gr.Dataframe` inside a `gr.Tab` freezes the browser UI after the tab is selected and the Dataframe value is updated from the tab's `.select()` event.
This works in `gradio==6.10.0`, but starts freezing in `gradio==6.11.0`. I also reproduced similar freezing behavior with `6.12.0`, `6.13.0`, and in a real app with `6.15.2`.
In the real app on `6.15.2`, the browser console showed:
```text
RangeError: Maximum call stack size exceeded
at Object.get [as groupedColumnMode] (.../assets/Index-....js...)
```
### Have you searched existing issues?
Yes. I did not find an exact match for this combination:
- `gr.Dataframe`
- inside `gr.Tab`
- value loaded from `tab.select`
- `interactive=False`
- `type="array"`
- `column_widths`
- mixed datatypes including `markdown` / `bool`
### Reproduction
```python
import gradio as gr
rows = [
[26, "General", "public", "Monthly vegetable sales", "user@example.com", "**Delete**"],
[27, "General", "public", "Vegetable sales", "user@example.com", "**Delete**"],
[35, "HR", "group", "Sample title", "user@example.com", "**Delete**"],
]
headers = ["File ID", "Brain Name", "Brain Type", "Title", "Inputed By", "Delete Btn"]
def load():
return rows, "loaded"
def select(df, evt: gr.SelectData):
return f"selected {evt.index} {evt.value}"
with gr.Blocks(title="df-regression-test") as app:
with gr.Tab("Other"):
gr.Markdown("other")
with gr.Tab("Knowledge Details") as tab:
df = gr.Dataframe(
column_count=6,
datatype=["number", "str", "str", "str", "str", "markdown"],
headers=headers,
type="array",
column_widths=["10%", "20%", "10%", "30%", "20%", "10%"],
max_height=600,
interactive=False,
)
out = gr.Markdown("waiting")
tab.select(fn=load, inputs=[], outputs=[df, out])
df.select(fn=select, inputs=[df], outputs=[out])
app.queue().launch()
```
### Steps to reproduce
1. Install `gradio==6.11.0`.
2. Run the reproduction script.
3. Open the app in Chrome.
4. Click the `Knowledge Details` tab.
5. The page becomes unresponsive or browser automation times out while trying to read the page.
### Expected behavior
The Dataframe should render rows normally after the tab is selected, as it does in `gradio==6.10.0`.
### Actual behavior
The page freezes or becomes unresponsive after selecting the tab. In a larger app using `gradio==6.15.2`, the browser console showed a maximum call stack error involving `groupedColumnMode`.
### Version matrix tested
- `gradio==6.10.0`: works
- `gradio==6.11.0`: freezes
- `gradio==6.12.0`: freezes
- `gradio==6.13.0`: freezes
- `gradio==6.15.2`: freezes in the real app
### Environment
- OS: macOS
- Browser: Google Chrome
- Python: 3.11
- Gradio versions tested: 6.10.0, 6.11.0, 6.12.0, 6.13.0, 6.15.2
### Additional context
The regression appears to start with `6.11.0`. The changelog mentions that the Dataframe component was migrated to Svelte 5 in that release. The public API usage above still appears to be supported by the current Dataframe documentation, so this may be a frontend regression rather than an intentional API change.
关闭于 2026-06-03 1 条评论