Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 5516ae2

Browse files
committed
Log and ignore broken events when retrieving from the database.
1 parent 1729710 commit 5516ae2

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

synapse/storage/databases/main/events_worker.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,8 +574,20 @@ def _get_events_from_db(self, event_ids, allow_rejected=False):
574574
if not allow_rejected and rejected_reason:
575575
continue
576576

577-
d = db_to_json(row["json"])
578-
internal_metadata = db_to_json(row["internal_metadata"])
577+
# If the event or metadata cannot be parsed, log the error and act
578+
# as if the event is unknown.
579+
try:
580+
d = db_to_json(row["json"])
581+
except ValueError:
582+
logger.error("Unable to parse json from event: %s", event_id)
583+
continue
584+
try:
585+
internal_metadata = db_to_json(row["internal_metadata"])
586+
except ValueError:
587+
logger.error(
588+
"Unable to parse internal_metadata from event: %s", event_id
589+
)
590+
continue
579591

580592
format_version = row["format_version"]
581593
if format_version is None:

0 commit comments

Comments
 (0)