Skip to content

Commit c1f33ff

Browse files
committed
fix(invite): adjust invite processing to return 200 response before joining room, allowing extra time for event storage
1 parent ae1e270 commit c1f33ff

File tree

1 file changed

+7
-5
lines changed
  • ee/packages/federation-matrix/src/api/_matrix

1 file changed

+7
-5
lines changed

ee/packages/federation-matrix/src/api/_matrix/invite.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,17 +351,19 @@ export const getMatrixInviteRoutes = (services: HomeserverServices) => {
351351

352352
const inviteEvent = await invite.processInvite(event, roomIdSchema.parse(roomId), eventIdSchema.parse(eventId), roomVersion);
353353

354-
setTimeout(
355-
() => {
354+
// we first return 200 and then we join the room
355+
// this helps the other side giving extra time to store the invite event
356+
357+
c.env.res.on('finish', () => {
358+
setTimeout(() => {
356359
void startJoiningRoom({
357360
inviteEvent,
358361
user: ourUser,
359362
room,
360363
state,
361364
});
362-
},
363-
inviteEvent.event.content.is_direct ? 2000 : 0,
364-
);
365+
}, 2000);
366+
});
365367

366368
return {
367369
body: {

0 commit comments

Comments
 (0)