I have the same issue when using pn.Param to feed in some inputs together with pn.Tabs and dynamic=True. I cannot post the code right now, but I get the following error when I switch from tab 0 (the active one on startup) to tab 1 and back to tab 0. Tab 0 then becomes blank.
(03/15/2024 04:10:20 PM) - tornado.application - ERROR - ioloop:758 - Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOMainLoop object at 0x000001B760D9F690>>, <Task finished name='Task-113' coro=<ServerSession.with_document_locked() done, defined at C:\Mambaforge\envs\env\Lib\site-packages\bokeh\server\session.py:77> exception=SerializationError('circular reference')>)
Traceback (most recent call last):
File "C:\Mambaforge\envs\env\Lib\site-packages\tornado\ioloop.py", line 738, in _run_callback
ret = callback()
^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\tornado\ioloop.py", line 762, in _discard_future_result
future.result()
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\server\session.py", line 94, in _needs_document_lock_wrapper
result = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\server\session.py", line 226, in with_document_locked
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 485, in wrapper
return invoke_with_curdoc(doc, invoke)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 443, in invoke_with_curdoc
return f()
^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 484, in invoke
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 182, in remove_then_invoke
return callback()
^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\panel\layout\base.py", line 114, in _update_model
with hold(doc):
File "C:\Mambaforge\envs\env\Lib\contextlib.py", line 144, in __exit__
next(self.gen)
File "C:\Mambaforge\envs\env\Lib\site-packages\panel\io\model.py", line 207, in hold
doc.unhold()
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\document.py", line 776, in unhold
self.callbacks.unhold()
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 431, in unhold
self.trigger_on_change(event)
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 413, in trigger_on_change
invoke_with_curdoc(doc, invoke_callbacks)
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 443, in invoke_with_curdoc
return f()
^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 412, in invoke_callbacks
cb(event)
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\callbacks.py", line 276, in <lambda>
self._change_callbacks[receiver] = lambda event: event.dispatch(receiver)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\events.py", line 353, in dispatch
super().dispatch(receiver)
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\events.py", line 219, in dispatch
cast(DocumentPatchedMixin, receiver)._document_patched(self)
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\server\session.py", line 252, in _document_patched
self._pending_writes.append(connection.send_patch_document(event))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\server\connection.py", line 86, in send_patch_document
msg = self.protocol.create('PATCH-DOC', [event])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\protocol\__init__.py", line 131, in create
return self._messages[msgtype].create(*args, **kwargs) # type: ignore [attr-defined]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\protocol\messages\patch_doc.py", line 90, in create
patch_json = PatchJson(events=serializer.encode(events))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 276, in _encode
return self._encode_list(obj)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 322, in _encode_list
return [self.encode(item) for item in obj]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 322, in <listcomp>
return [self.encode(item) for item in obj]
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 260, in _encode
return obj.to_serializable(self)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\document\events.py", line 369, in to_serializable
new = serializer.encode(self.new),
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 280, in _encode
return self._encode_dict(obj)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 339, in _encode_dict
entries=[(self.encode(key), self.encode(val)) for key, val in obj.items()],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 339, in <listcomp>
entries=[(self.encode(key), self.encode(val)) for key, val in obj.items()],
^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 276, in _encode
return self._encode_list(obj)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 322, in _encode_list
return [self.encode(item) for item in obj]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 322, in <listcomp>
return [self.encode(item) for item in obj]
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 260, in _encode
return obj.to_serializable(self)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\model\model.py", line 525, in to_serializable
super_rep = super().to_serializable(serializer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\has_props.py", line 406, in to_serializable
attributes = {key: serializer.encode(val) for key, val in properties.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\has_props.py", line 406, in <dictcomp>
attributes = {key: serializer.encode(val) for key, val in properties.items()}
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 280, in _encode
return self._encode_dict(obj)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 339, in _encode_dict
entries=[(self.encode(key), self.encode(val)) for key, val in obj.items()],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 339, in <listcomp>
entries=[(self.encode(key), self.encode(val)) for key, val in obj.items()],
^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 251, in encode
return self._encode(obj)
^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 260, in _encode
return obj.to_serializable(self)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\model\model.py", line 525, in to_serializable
super_rep = super().to_serializable(serializer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\has_props.py", line 406, in to_serializable
attributes = {key: serializer.encode(val) for key, val in properties.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\has_props.py", line 406, in <dictcomp>
attributes = {key: serializer.encode(val) for key, val in properties.items()}
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 247, in encode
self.error("circular reference")
File "C:\Mambaforge\envs\env\Lib\site-packages\bokeh\core\serialization.py", line 468, in error
raise SerializationError(message)
bokeh.core.serialization.SerializationError: circular reference