[BUG] Clientside callbacks with the same input and no outputs override each other
@T4rk1n is already working on this.
Since Feb 4, 2026.
- Dominant language
- Python
- Stars
- 24.4k
- Forks
- 2.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 13
Description
Environment
pip list | grep dash output:
dash 3.3.0
dash_ag_grid 33.3.3
dash-bootstrap-components 2.0.4
dash_cytoscape 1.0.2
- OS: Ubuntu 22.04.5
- Browser: Firefox 147.0.2
Bug description
See example code below. Clicking the button should show "one" and "two" in the developer console (I am not sure if there is a specified order in which they are expected to show up; however, I don't really mind as long as both callbacks get triggered).
However, instead only "two" is shown. It looks like the first clientside callback gets "overriden" somehow. This is not a problem when the callbacks have defined outputs.
There are some applications I have where it is useful for one component to trigger multiple clientside callbacks, so this bug does impact me (although it seems pretty straightforward to work around it).
Minimal example
#! /usr/bin/env python3
from dash import Dash, html, clientside_callback, Input
app = Dash()
app.layout = [
html.Button("click me", id="testBtn"),
]
clientside_callback(
"""
function(n_clicks) {
console.log("one");
}
""",
Input("testBtn", "n_clicks"),
prevent_initial_call=True,
)
clientside_callback(
"""
function(n_clicks) {
console.log("two");
}
""",
Input("testBtn", "n_clicks"),
prevent_initial_call=True,
)
app.run(debug=True, port=8055)
Screen capture of the bug
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.