Skip to content

[Bug]: Inconsistent population of ui.input_selectize() by update_selectize() #1990

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
HarrisonWismer opened this issue May 1, 2025 · 0 comments
Labels
bug Something isn't working needs-triage

Comments

@HarrisonWismer
Copy link

Component

UI (ui.*)

Severity

P1 - High (major feature broken)

Shiny Version

1.2.1

Python Version

3.12.2

Minimal Reproducible Example

from shiny import App, render, ui

humu_tabs_mapped_to_gene_inputs = {"Mouse Gene Expression Box Plots" : [["humu_gex_box_gene", "Mouse"]],
                                   "Mouse Gene Expression Dotplots" : [["humu_gex_dot_gene", "Mouse"]],
                                   "HuMu Gene Expression Comparison" : [["humu_box_comp_human_genes", "Human"],["humu_box_comp_mu_genes", "Mouse"]],
}

app = app_ui = ui.page_fluid(
ui.nav_panel("Mouse Gene Expression Dotplots",
                    ui.layout_sidebar(
                        ui.sidebar(
                            ui.input_selectize("humu_gex_dot_gene", "Choose Genes to plot:", [], multiple=True),
                            ui.input_selectize("humu_gex_dot_groupby", "Group By:", hsh.categoricals_opts, selected="---"),
                            ui.input_selectize("humu_gex_dot_groups", "Subset Groupby Categories:", [], multiple=True),
                            ui.input_selectize("humu_gex_dot_splitby", "Split By:", ["---"] + hsh.categoricals_opts, selected="---"),
                            ui.input_selectize('humu_gex_dot_splits', "Subset Splitby Categories:", [], multiple=True),
                            ui.input_switch("humu_gex_dot_swap", "Swap Axes"),
                            ui.input_action_button("humu_gex_dot_run", "RUN"),
                            bg=panel_color
                        ),
                    ui.card(ui.output_plot("humu_plot_gex_dotplot"), min_height="750px", full_screen=True)
                    )       
                ),
)

def server(input, output, session):
@reactive.effect
    def populate_gene_selections():
        current_tab = input.humu_top_nav()
        if current_tab not in humu_tabs_visited:
            humu_tabs_visited.append(current_tab)
            if current_tab in humu_tabs_mapped_to_gene_inputs:
                for id, category in humu_tabs_mapped_to_gene_inputs[current_tab]:
                    if category == "Mouse":
                        ui.update_selectize(
                            id,
                            choices=hsh.genes,
                            selected=[],
                            server=True,
                        )
                    else:
                        ui.update_selectize(
                            id,
                            choices=qsh.genes,
                            selected=[],
                            server=True,
                        )

Behavior

I have multiple input_selectize dropdowns that take a large number of options. To avoid long startup times for the app I initialize them as empty at first and then when the user visits a tab, the input_selectize in that tab is filled in on the server side.

However, with my hosted shiny app on shinyproxy, often random input_selectizes fail to update or display options. This isn't strictly reproducible across sessions and sometimes when the app is reloaded the input_selectize() that was broken on during a previous session works and a new input_selectize doesn't work. This doesn't happen when I run my app locally but seems to be specific to shinyproxy, but not sure how to get around this.

Error Messages (if any)

Environment

OS: Ubuntu 22.02
Browser: Firefox, Chrome
Dependencies: Shiny proxy
@HarrisonWismer HarrisonWismer added the bug Something isn't working label May 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs-triage
Projects
None yet
Development

No branches or pull requests

1 participant