diff --git a/src/github.com/matrix-org/dendrite/syncapi/storage/current_room_state_table.go b/src/github.com/matrix-org/dendrite/syncapi/storage/current_room_state_table.go index 0990f429b..4dd440a66 100644 --- a/src/github.com/matrix-org/dendrite/syncapi/storage/current_room_state_table.go +++ b/src/github.com/matrix-org/dendrite/syncapi/storage/current_room_state_table.go @@ -217,9 +217,11 @@ func (s *currentRoomStateStatements) upsertRoomState( ctx context.Context, txn *sql.Tx, event gomatrixserverlib.Event, membership *string, addedAt int64, ) error { + var containsURL bool var content map[string]interface{} - json.Unmarshal(event.Content(), content) - _, containsURL := content["url"] + if json.Unmarshal(event.Content(), &content) != nil { + _, containsURL = content["url"] + } stmt := common.TxStmt(txn, s.upsertRoomStateStmt) _, err := stmt.ExecContext( diff --git a/src/github.com/matrix-org/dendrite/syncapi/storage/invites_table.go b/src/github.com/matrix-org/dendrite/syncapi/storage/invites_table.go index 37a361837..1a214b791 100644 --- a/src/github.com/matrix-org/dendrite/syncapi/storage/invites_table.go +++ b/src/github.com/matrix-org/dendrite/syncapi/storage/invites_table.go @@ -85,9 +85,11 @@ func (s *inviteEventsStatements) prepare(db *sql.DB) (err error) { func (s *inviteEventsStatements) insertInviteEvent( ctx context.Context, inviteEvent gomatrixserverlib.Event, ) (streamPos int64, err error) { + var containsURL bool var content map[string]interface{} - json.Unmarshal(inviteEvent.Content(), content) - _, containsURL := content["url"] + if json.Unmarshal(inviteEvent.Content(), &content) != nil { + _, containsURL = content["url"] + } err = s.insertInviteEventStmt.QueryRowContext( ctx, diff --git a/src/github.com/matrix-org/dendrite/syncapi/storage/output_room_events_table.go b/src/github.com/matrix-org/dendrite/syncapi/storage/output_room_events_table.go index 0d4525b20..a103d1d39 100644 --- a/src/github.com/matrix-org/dendrite/syncapi/storage/output_room_events_table.go +++ b/src/github.com/matrix-org/dendrite/syncapi/storage/output_room_events_table.go @@ -224,9 +224,11 @@ func (s *outputRoomEventsStatements) insertEvent( txnID = &transactionID.TransactionID } + var containsURL bool var content map[string]interface{} - json.Unmarshal(event.Content(), content) - _, containsURL := content["url"] + if json.Unmarshal(event.Content(), &content) != nil { + _, containsURL = content["url"] + } stmt := common.TxStmt(txn, s.insertEventStmt) err = stmt.QueryRowContext(