Correctly handle failing to parse event dict from DB

Now that we do a bit more validadtion of events, it's possible that an
event persisted in the database may now not pass validation. This
shouldn't happen, but let's handle it correctly by logging and returning
that we couldn't find the event.

This is the same as what we do if we can't parse the JSON.
This commit is contained in:
Erik Johnston
2026-05-18 09:48:08 +01:00
parent a5081d102e
commit e58c2972fb
@@ -1516,12 +1516,17 @@ class EventsWorkerStore(SQLBaseStore):
)
continue
original_ev = make_event_from_dict(
event_dict=d,
room_version=room_version,
internal_metadata_dict=internal_metadata,
rejected_reason=rejected_reason,
)
try:
original_ev = make_event_from_dict(
event_dict=d,
room_version=room_version,
internal_metadata_dict=internal_metadata,
rejected_reason=rejected_reason,
)
except ValueError:
logger.error("Unable to parse event from database: %s", event_id)
continue
original_ev.internal_metadata.stream_ordering = row.stream_ordering
original_ev.internal_metadata.instance_name = row.instance_name
original_ev.internal_metadata.outlier = row.outlier