From f22606678312d5b76958b45e6d475f57335df70e Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Fri, 21 Jan 2022 10:57:38 +0000 Subject: [PATCH] Don't check missing state for create events --- roomserver/internal/query/query.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/roomserver/internal/query/query.go b/roomserver/internal/query/query.go index 6b4cb5816..b9eac3395 100644 --- a/roomserver/internal/query/query.go +++ b/roomserver/internal/query/query.go @@ -149,8 +149,14 @@ func (r *Queryer) QueryMissingAuthPrevEvents( } for _, prevEventID := range request.PrevEventIDs { - if state, err := r.DB.StateAtEventIDs(ctx, []string{prevEventID}); err != nil || len(state) == 0 { + if eventTypes, err := r.DB.EventTypeNIDs(ctx, []string{prevEventID}); err != nil || len(eventTypes) == 0 { response.MissingPrevEventIDs = append(response.MissingPrevEventIDs, prevEventID) + } else if eventTypes[prevEventID] != types.MRoomCreateNID { + // We only want to check for missing state for events that aren't create + // events, because there is no state before a create event + if state, err := r.DB.StateAtEventIDs(ctx, []string{prevEventID}); err != nil || len(state) == 0 { + response.MissingPrevEventIDs = append(response.MissingPrevEventIDs, prevEventID) + } } }