@@ -95,6 +95,8 @@ export class InviteService {
9595
9696 // if user invited belongs to our server
9797 if ( invitedServer === this . configService . serverName ) {
98+ await stateService . handlePdu ( inviteEvent ) ;
99+
98100 // let all servers know of this state change
99101 // without it join events will not be processed if /event/{eventId} causes problems
100102 void federationService . sendEventToAllServersInRoom ( inviteEvent ) ;
@@ -150,24 +152,16 @@ export class InviteService {
150152 }
151153
152154 private async shouldProcessInvite (
153- strippedStateEvents :
154- | PduForType <
155- | 'm.room.create'
156- | 'm.room.name'
157- | 'm.room.avatar'
158- | 'm.room.topic'
159- | 'm.room.join_rules'
160- | 'm.room.canonical_alias'
161- | 'm.room.encryption'
162- > [ ]
163- | undefined ,
155+ strippedStateEvents : PduForType <
156+ | 'm.room.create'
157+ | 'm.room.name'
158+ | 'm.room.avatar'
159+ | 'm.room.topic'
160+ | 'm.room.join_rules'
161+ | 'm.room.canonical_alias'
162+ | 'm.room.encryption'
163+ > [ ] ,
164164 ) : Promise < void > {
165- if ( ! strippedStateEvents || strippedStateEvents . length === 0 ) {
166- throw new Error (
167- 'Missing invite_room_state required for policy validation' ,
168- ) ;
169- }
170-
171165 const isRoomNonPrivate = strippedStateEvents . some (
172166 ( stateEvent ) =>
173167 stateEvent . type === 'm.room.join_rules' &&
@@ -196,8 +190,12 @@ export class InviteService {
196190 eventId : EventID ,
197191 roomVersion : RoomVersion ,
198192 ) : Promise < PersistentEventBase < RoomVersion , 'm.room.member' > > {
199- // SPEC: when a user invites another user on a different homeserver, a request to that homeserver to have the event signed and verified must be made
200- await this . shouldProcessInvite ( event . unsigned ?. invite_room_state ) ;
193+ if ( ! event . unsigned ?. invite_room_state ) {
194+ throw new Error (
195+ 'Missing invite_room_state required for policy validation' ,
196+ ) ;
197+ }
198+ await this . shouldProcessInvite ( event . unsigned . invite_room_state ) ;
201199
202200 const inviteEvent =
203201 PersistentEventFactory . createFromRawEvent < 'm.room.member' > (
0 commit comments