diff --git a/workbench-service/semantic_workbench_service/controller/conversation.py b/workbench-service/semantic_workbench_service/controller/conversation.py index 32e7954c..01d0b968 100644 --- a/workbench-service/semantic_workbench_service/controller/conversation.py +++ b/workbench-service/semantic_workbench_service/controller/conversation.py @@ -671,9 +671,11 @@ async def create_conversation_message( participant_id = str(principal.assistant_id) # pop "debug" from metadata, if it exists, and merge with the debug field - message_debug = deepmerge.always_merger.merge( - (new_message.metadata or {}).pop("debug", None), new_message.debug_data or {} - ) + message_debug = (new_message.metadata or {}).pop("debug", None) + # ensure that message_debug is a dictionary, in cases like {"debug": "some message"}, or {"debug": [1,2]} + if message_debug and not isinstance(message_debug, dict): + message_debug = {"debug": message_debug} + message_debug = deepmerge.always_merger.merge(message_debug or {}, new_message.debug_data or {}) message = db.ConversationMessage( conversation_id=conversation.conversation_id,