Correctly identify create events when checking for state

This commit is contained in:
Neil Alexander 2022-01-27 13:33:15 +00:00
parent ffe93f103f
commit fb168a504d
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 6 additions and 2 deletions

View file

@ -311,7 +311,9 @@ func (s *eventStatements) BulkSelectStateAtEventByID(
); err != nil { ); err != nil {
return nil, err return nil, err
} }
if result.BeforeStateSnapshotNID == 0 && result.EventTypeNID != types.MRoomCreateNID { // Genuine create events are the only case where it's OK to have no previous state.
isCreate := result.EventTypeNID == types.MRoomCreateNID && result.EventStateKeyNID == 1
if result.BeforeStateSnapshotNID == 0 && !isCreate {
return nil, types.MissingEventError( return nil, types.MissingEventError(
fmt.Sprintf("storage: missing state for event NID %d", result.EventNID), fmt.Sprintf("storage: missing state for event NID %d", result.EventNID),
) )

View file

@ -322,7 +322,9 @@ func (s *eventStatements) BulkSelectStateAtEventByID(
); err != nil { ); err != nil {
return nil, err return nil, err
} }
if result.BeforeStateSnapshotNID == 0 && result.EventTypeNID != types.MRoomCreateNID { // Genuine create events are the only case where it's OK to have no previous state.
isCreate := result.EventTypeNID == types.MRoomCreateNID && result.EventStateKeyNID == 1
if result.BeforeStateSnapshotNID == 0 && !isCreate {
return nil, types.MissingEventError( return nil, types.MissingEventError(
fmt.Sprintf("storage: missing state for event NID %d", result.EventNID), fmt.Sprintf("storage: missing state for event NID %d", result.EventNID),
) )