fix: handle non-dict history/messages in chat_message migration (#22588)

Some databases contain chat records where 'history' or 'messages' are
stored as lists instead of dicts. This causes an AttributeError
('list' object has no attribute 'items') during the
8452d01d26d7_add_chat_message_table migration.

Add isinstance checks to skip chat records with unexpected data shapes
gracefully, matching the existing pattern used for individual message
validation.
This commit is contained in:
Classic298 2026-03-11 20:24:21 +01:00 • committed by GitHub
parent a407a7f1c0
commit 06657b8109
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -151,7 +151,12 @@ def upgrade() -> None:
continue
history = chat_data.get("history", {})
if not isinstance(history, dict):
continue
messages = history.get("messages", {})
if not isinstance(messages, dict):
continue
for message_id, message in messages.items():
if not isinstance(message, dict):