Thank you for the quick reply.
I upgraded to Panel 1.5.0, Bokeh 3.5.2.
I also added the param but I get this warning:
WARNING:param.ParamFunction00123: The function supplied for Panel to display was declared with `watch=True`, which will cause the function to be called twice for any change in a dependent Parameter. `watch` should be False when Panel is responsible for displaying the result of the function call, while `watch=True` should be reserved for functions that work via side-effects, e.g. by modifying internal state of a class or global state in an application's namespace.
Here is the complete stacktrace:
2024-09-24 10:32:35,677 ERROR: panel.reactive - Callback failed for object named 'Disable button' changing property {'value': True}
Traceback (most recent call last):
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 462, in _process_events
self.param.update(**self_params)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2319, in update
restore = dict(self_._update(arg, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2352, in _update
self_._batch_call_watchers()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2546, in _batch_call_watchers
self_._execute_watcher(watcher, events)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2506, in _execute_watcher
watcher.fn(*args, **kwargs)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\depends.py", line 108, in cb
return func(*args, **dep_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\reactive.py", line 594, in wrapped
return eval_fn()(*combined_args, **combined_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\username\AppData\Local\Temp\ipykernel_13268\232170566.py", line 4, in update_button
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 528, in _f
instance_param.__set__(obj, val)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 530, in _f
return f(self, obj, val)
^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 1553, in __set__
obj.param._call_watcher(watcher, event)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2526, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2506, in _execute_watcher
watcher.fn(*args, **kwargs)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 443, in _param_change
applied &= self._apply_update(named_events, properties, model, ref)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 331, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 702, in _update_model
super()._update_model(events, msg, root, model, doc, comm)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 371, in _update_model
model.update(**msg)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\has_props.py", line 483, in update
setattr(self, k, v)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\has_props.py", line 336, in __setattr__
return super().__setattr__(name, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 332, in __set__
self._set(obj, old, value, setter=setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 620, in _set
self._trigger(obj, old, value, hint=hint, setter=setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 698, in _trigger
obj.trigger(self.name, old, value, hint, setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\model.py", line 568, in trigger
self.document.models.invalidate()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\document\models.py", line 195, in invalidate
self.recompute()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\document\models.py", line 215, in recompute
new_models |= mr.references()
^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\model.py", line 480, in references
return set(collect_models(self))
^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 139, in collect_models
return collect_filtered_models(None, *input_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 119, in collect_filtered_models
visit_immediate_value_references(obj, queue_one)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 185, in visit_immediate_value_references
child = getattr(value, attr)
^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 282, in __get__
raise UnsetValueError(f"{obj}.{self.name} doesn't have a value set")
bokeh.core.property.descriptors.UnsetValueError: Tooltip(id='06c71609-1013-4991-9870-aeea493d19ed', ...).content doesn't have a value set
2024-09-24 10:32:39,820 ERROR: panel.reactive - Callback failed for object named 'Disable button' changing property {'value': True}
Traceback (most recent call last):
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 462, in _process_events
self.param.update(**self_params)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2319, in update
restore = dict(self_._update(arg, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2352, in _update
self_._batch_call_watchers()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2546, in _batch_call_watchers
self_._execute_watcher(watcher, events)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2506, in _execute_watcher
watcher.fn(*args, **kwargs)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\depends.py", line 108, in cb
return func(*args, **dep_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\reactive.py", line 594, in wrapped
return eval_fn()(*combined_args, **combined_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\username\AppData\Local\Temp\ipykernel_13268\232170566.py", line 4, in update_button
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 528, in _f
instance_param.__set__(obj, val)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 530, in _f
return f(self, obj, val)
^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 1553, in __set__
obj.param._call_watcher(watcher, event)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2526, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\param\parameterized.py", line 2506, in _execute_watcher
watcher.fn(*args, **kwargs)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 443, in _param_change
applied &= self._apply_update(named_events, properties, model, ref)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 331, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 702, in _update_model
super()._update_model(events, msg, root, model, doc, comm)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\panel\reactive.py", line 371, in _update_model
model.update(**msg)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\has_props.py", line 483, in update
setattr(self, k, v)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\has_props.py", line 336, in __setattr__
return super().__setattr__(name, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 332, in __set__
self._set(obj, old, value, setter=setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 620, in _set
self._trigger(obj, old, value, hint=hint, setter=setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 698, in _trigger
obj.trigger(self.name, old, value, hint, setter)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\model.py", line 568, in trigger
self.document.models.invalidate()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\document\models.py", line 195, in invalidate
self.recompute()
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\document\models.py", line 215, in recompute
new_models |= mr.references()
^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\model.py", line 480, in references
return set(collect_models(self))
^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 139, in collect_models
return collect_filtered_models(None, *input_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 119, in collect_filtered_models
visit_immediate_value_references(obj, queue_one)
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\model\util.py", line 185, in visit_immediate_value_references
child = getattr(value, attr)
^^^^^^^^^^^^^^^^^^^^
File "c:\ProgramData\anaconda3\envs\LATEST_PANEL\Lib\site-packages\bokeh\core\property\descriptors.py", line 282, in __get__
raise UnsetValueError(f"{obj}.{self.name} doesn't have a value set")
bokeh.core.property.descriptors.UnsetValueError: Tooltip(id='06c71609-1013-4991-9870-aeea493d19ed', ...).content doesn't have a value set
And I’m also adding the video of how I reproduce the error, I waited about 10 seconds before getting back to the app.
I am using a notebook in VS Code.