Skip to content

Commit e34f2a7

Browse files
authored
Ensure metadata.debug is always a dict (#210)
Before merging into debug_data
1 parent 6827e45 commit e34f2a7

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

workbench-service/semantic_workbench_service/controller/conversation.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -671,9 +671,11 @@ async def create_conversation_message(
671671
participant_id = str(principal.assistant_id)
672672

673673
# pop "debug" from metadata, if it exists, and merge with the debug field
674-
message_debug = deepmerge.always_merger.merge(
675-
(new_message.metadata or {}).pop("debug", None), new_message.debug_data or {}
676-
)
674+
message_debug = (new_message.metadata or {}).pop("debug", None)
675+
# ensure that message_debug is a dictionary, in cases like {"debug": "some message"}, or {"debug": [1,2]}
676+
if message_debug and not isinstance(message_debug, dict):
677+
message_debug = {"debug": message_debug}
678+
message_debug = deepmerge.always_merger.merge(message_debug or {}, new_message.debug_data or {})
677679

678680
message = db.ConversationMessage(
679681
conversation_id=conversation.conversation_id,

0 commit comments

Comments
 (0)