Hello!
I made a wizard using Pipeline back in 0.14. I’ve mostly run it in windows with success, but now we have updated to 1.2.1 and also run on linux. We have some stages that look like this:
class BaseStage(param.Parameterized):
ready = param.Boolean(True)
loaded = param.Event()
excel_file = param.Parameter()
assay_name = param.String()
used_vials = param.List()
script = param.String()
@param.output(
("assay_name", param.String),
("used_vials", param.List),
("script", param.String),
)
def output(self):
return self.assay_name, self.used_vials, self.script
class InitializeInstrument(BaseStage):
init = param.Event()
def panel(self):
#self.ready = instrument.active
self.pane = pn.Column()
self.pane.append(pn.widgets.Button.from_param(self.param.init, button_type='success'))
return self.pane
@param.depends("init", watch=True)
async def on_loaded(self):
self.pane.loading = True
await instrument.init()
self.pane.loading = False
self.ready = True
...
pipeline = pn.pipeline.Pipeline(ready_parameter="ready", debug=True, inherit_params=False)
initialize_insturment = InitializeInstrument()
assay_script = AssayScript()
...
pipeline.add_stage("Initialize instrument", initialize_insturment)
...
I can’t figure out what makes it crash, it seems quite random to me, but when I press the next button it sometimes crashes with the following error message:
2023-09-14 17:48:21,652 error handling message
message: Message 'PATCH-DOC' content: {'events': [{'kind': 'MessageSent', 'msg_type': 'bokeh_event', 'msg_data': {'type': 'event', 'name': 'button_click', 'values': {'type': 'map', 'entries': [['model', {'id': 'p1416'}]]}}}]}
error: UnsetValueError("ReactiveHTML(id='p1018', ...).data doesn't have a value set")
Traceback (most recent call last):
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pipeline.py", line 413, in _next
self.stage[0] = self._init_stage()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 405, in __setitem__
self.objects = new_objects
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1252, in __set__
obj.param._call_watcher(watcher, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2043, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 374, in _param_change
self._apply_update(named_events, properties, model, ref)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 302, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 94, in _update_model
children, old_children = self._get_objects(model, old, doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 173, in _get_model
objects, _ = self._get_objects(model, [], doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 173, in _get_model
objects, _ = self._get_objects(model, [], doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pane/holoviews.py", line 411, in _get_model
plot = self._render(doc, comm, root)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pane/holoviews.py", line 490, in _render
elif doc.theme and getattr(doc.theme, '_json') != {'attrs': {}}:
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/document.py", line 213, in theme
return self._theme
AttributeError: 'Document' object has no attribute '_theme'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pipeline.py", line 418, in _next
self.stage[0] = prev_state.panel()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 405, in __setitem__
self.objects = new_objects
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1252, in __set__
obj.param._call_watcher(watcher, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2043, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 374, in _param_change
self._apply_update(named_events, properties, model, ref)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 302, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 94, in _update_model
children, old_children = self._get_objects(model, old, doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 173, in _get_model
objects, _ = self._get_objects(model, [], doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 173, in _get_model
objects, _ = self._get_objects(model, [], doc, root, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 155, in _get_objects
child = pane._get_model(doc, root, model, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pane/holoviews.py", line 411, in _get_model
plot = self._render(doc, comm, root)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pane/holoviews.py", line 490, in _render
elif doc.theme and getattr(doc.theme, '_json') != {'attrs': {}}:
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/document.py", line 213, in theme
return self._theme
AttributeError: 'Document' object has no attribute '_theme'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 477, in _comm_event
self._process_bokeh_event(doc, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 414, in _process_bokeh_event
self._process_event(event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/widgets/button.py", line 243, in _process_event
self.clicks += 1
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 367, in _f
instance_param.__set__(obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/__init__.py", line 625, in __set__
super(Dynamic,self).__set__(obj,val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1252, in __set__
obj.param._call_watcher(watcher, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2043, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/param.py", line 573, in action
change.new(self.object)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pipeline.py", line 164, in <lambda>
next = param.Action(default=lambda x: x.param.trigger('next'))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1993, in trigger
self_.set_param(**dict(params, **triggers))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1929, in set_param
return self_.update(kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1902, in update
self_._batch_call_watchers()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2063, in _batch_call_watchers
self_._execute_watcher(watcher, events)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 669, in caller
return function()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 407, in _depends
return func(*args, **kw)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/pipeline.py", line 435, in _next
self.stage.loading = False
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1252, in __set__
obj.param._call_watcher(watcher, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2043, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/viewable.py", line 718, in _update_loading
stop_loading_spinner(self)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/io/loading.py", line 60, in stop_loading_spinner
_remove_css_classes(item, css_classes)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/io/loading.py", line 22, in _remove_css_classes
item.css_classes = [css_class for css_class in item.css_classes
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 369, in _f
return f(self, obj, val)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1252, in __set__
obj.param._call_watcher(watcher, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2043, in _call_watcher
self_._execute_watcher(watcher, (event,))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 374, in _param_change
self._apply_update(named_events, properties, model, ref)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 302, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/layout/base.py", line 114, in _update_model
with doc.models.freeze():
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/contextlib.py", line 142, in __exit__
next(self.gen)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/models.py", line 135, in freeze
self._pop_freeze()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/models.py", line 288, in _pop_freeze
self.recompute()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/models.py", line 214, in recompute
for mr in document.roots:
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/document.py", line 154, in roots
return list(self._roots)
AttributeError: 'Document' object has no attribute '_roots'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/server/protocol_handler.py", line 97, in handle
work = await handler(message, connection)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/server/session.py", line 94, in _needs_document_lock_wrapper
result = func(self, *args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/server/session.py", line 286, in _handle_patch
message.apply_to_document(self.document, self)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/protocol/messages/patch_doc.py", line 104, in apply_to_document
invoke_with_curdoc(doc, lambda: doc.apply_json_patch(self.payload, setter=setter))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/callbacks.py", line 443, in invoke_with_curdoc
return f()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/protocol/messages/patch_doc.py", line 104, in <lambda>
invoke_with_curdoc(doc, lambda: doc.apply_json_patch(self.payload, setter=setter))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/document.py", line 391, in apply_json_patch
DocumentPatchedEvent.handle_event(self, event, setter)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/events.py", line 245, in handle_event
event_cls._handle_event(doc, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/events.py", line 280, in _handle_event
cb(event.msg_data)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/callbacks.py", line 390, in trigger_event
model._trigger_event(event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/util/callback_manager.py", line 113, in _trigger_event
self.document.callbacks.notify_event(cast(Model, self), event, invoke)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/callbacks.py", line 260, in notify_event
invoke_with_curdoc(doc, callback_invoker)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/document/callbacks.py", line 443, in invoke_with_curdoc
return f()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/util/callback_manager.py", line 109, in invoke
cast(EventCallbackWithEvent, callback)(event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 492, in _server_event
self._comm_event(doc, event)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 479, in _comm_event
state._handle_exception(e)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/io/state.py", line 434, in _handle_exception
config.exception_handler(exception)
File "/home/frwi/instrument_controller/src/web_server/assay.py", line 12, in exception_handler
pn.state.notifications.error(f"{ex}", duration=0)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/io/notifications.py", line 115, in error
return self.send(message, duration, type='error')
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/io/notifications.py", line 111, in send
self.param.trigger('notifications')
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1993, in trigger
self_.set_param(**dict(params, **triggers))
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1929, in set_param
return self_.update(kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 1902, in update
self_._batch_call_watchers()
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2063, in _batch_call_watchers
self_._execute_watcher(watcher, events)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/param/parameterized.py", line 2025, in _execute_watcher
watcher.fn(*args, **kwargs)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 374, in _param_change
self._apply_update(named_events, properties, model, ref)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 302, in _apply_update
self._update_model(events, msg, root, model, doc, comm)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/panel/reactive.py", line 2087, in _update_model
self._set_on_model(data_msg, root, model.data)
File "/home/frwi/miniconda3/envs/bb/lib/python3.10/site-packages/bokeh/core/property/descriptors.py", line 283, in __get__
raise UnsetValueError(f"{obj}.{self.name} doesn't have a value set")
bokeh.core.property.descriptors.UnsetValueError: ReactiveHTML(id='p1018', ...).data doesn't have a value set
I tried making a repex but it does not seem to trigger the error. It could maybe be related to content of some stage or something.
Does the error message tell you anything?
Best regards,
Fredrik