Wow, I spend hours last night trying to think (and overthink) about this issue. I searched online, I asked chatGPT I tried a million ways and this simple answer might do it. Can’t wait to try. In summary, what I read was, instead of using the inputs directly in my renderPlot function I store the default state of the inputs in reactive values, then place the inputs inside an observe event which updates the reactive values when the user opens the tab. At first the update generates the same value so nothing really happens, but when the user changes the sliderInput the plot will update.