@@ -94,6 +94,8 @@ export class InviteService {
9494
9595 // if user invited belongs to our server
9696 if ( invitedServer === this . configService . serverName ) {
97+ await stateService . handlePdu ( inviteEvent ) ;
98+
9799 // let all servers know of this state change
98100 // without it join events will not be processed if /event/{eventId} causes problems
99101 void federationService . sendEventToAllServersInRoom ( inviteEvent ) ;
@@ -149,24 +151,16 @@ export class InviteService {
149151 }
150152
151153 private async shouldProcessInvite (
152- strippedStateEvents :
153- | PduForType <
154- | 'm.room.create'
155- | 'm.room.name'
156- | 'm.room.avatar'
157- | 'm.room.topic'
158- | 'm.room.join_rules'
159- | 'm.room.canonical_alias'
160- | 'm.room.encryption'
161- > [ ]
162- | undefined ,
154+ strippedStateEvents : 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+ > [ ] ,
163163 ) : Promise < void > {
164- if ( ! strippedStateEvents || strippedStateEvents . length === 0 ) {
165- throw new Error (
166- 'Missing invite_room_state required for policy validation' ,
167- ) ;
168- }
169-
170164 const isRoomNonPrivate = strippedStateEvents . some (
171165 ( stateEvent ) =>
172166 stateEvent . type === 'm.room.join_rules' &&
@@ -195,8 +189,12 @@ export class InviteService {
195189 eventId : EventID ,
196190 roomVersion : RoomVersion ,
197191 ) : Promise < PersistentEventBase < RoomVersion , 'm.room.member' > > {
198- // 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
199- await this . shouldProcessInvite ( event . unsigned ?. invite_room_state ) ;
192+ if ( ! event . unsigned ?. invite_room_state ) {
193+ throw new Error (
194+ 'Missing invite_room_state required for policy validation' ,
195+ ) ;
196+ }
197+ await this . shouldProcessInvite ( event . unsigned . invite_room_state ) ;
200198
201199 const inviteEvent =
202200 PersistentEventFactory . createFromRawEvent < 'm.room.member' > (
0 commit comments