✊🏿 Black Lives Matter. Please consider donating to Black Girls Code today.
🐇 Announcing Dash VTK for 3d simulation graphics. Check out the March webinar.

Error: The Callback ... is a multi-output (with one output)

Hi, I am trying to return a string value to a dcc.Store object, When I try to run the callback, it gives an error saying it expects a list of tuple, even though the store objects data type is set to a string.

dcc.Store(id="SatStore", storage_type='local', data="teststring"),
dcc.Interval(id="UpdateSat", interval=1 * 2000, n_intervals=0),

@app.callback(
    [
        Output('SatStore', 'data'),
    ],
    [
        Input('satellite-dropdown-component', 'value'),
        Input('UpdateSat', 'n_intervals'),
    ])
def update_store(value, n_intervals):
   
    global satellite

    ctx = dash.callback_context
    # Check which input fired off the component
    if not ctx.triggered:
        trigger_input = ""
    else:
        trigger_input = ctx.triggered[0]["prop_id"].split(".")[0]

    
    data = value
    satellite = data

    if trigger_input == "UpdateSat":
        print('trying to update satstore value attempt number: ' +  str(n_intervals))
        return satellite

    else:
        print('updating satellite value from slider change')
        return satellite

dash.exceptions.InvalidCallbackReturnValue: The callback …SatStore.data… is a multi-output.
Expected the output type to be a list or tuple but got ‘h45-k1’.

Try return [satellite]. Or, change [Output(..)] to be Output(...)

Hi Chris, thanks for the reply. Seems like the error was that I had my output parameters in a list, Changing it to Output(…) worked, But now I am getting another error:

line 1441, in dispatch
for component_registration in self.callback_map[output][“inputs”]:
KeyError: '…SatStore.data…

Edit: I fixed the issue by closing the dash instances open in the web browser, it seemed to refresh the Store component