diff --git a/packages/federation-sdk/src/services/federation-validation.service.ts b/packages/federation-sdk/src/services/federation-validation.service.ts index c7f15233..3aaa56c1 100644 --- a/packages/federation-sdk/src/services/federation-validation.service.ts +++ b/packages/federation-sdk/src/services/federation-validation.service.ts @@ -62,6 +62,11 @@ export class FederationValidationService { } private async checkDomainReachable(domain: string): Promise { + // Early return for same-server domain - no need to check reachability + if (domain === this.configService.serverName) { + return; + } + const timeoutMs = this.configService.getConfig('networkCheckTimeoutMs') || 5000; diff --git a/packages/federation-sdk/src/services/invite.service.ts b/packages/federation-sdk/src/services/invite.service.ts index 9a2a5aff..056dd0a8 100644 --- a/packages/federation-sdk/src/services/invite.service.ts +++ b/packages/federation-sdk/src/services/invite.service.ts @@ -96,11 +96,6 @@ export class InviteService { ); } - await this.federationValidationService.validateOutboundInvite( - userId, - roomId, - ); - // if user invited belongs to our server if (invitedServer === this.configService.serverName) { await stateService.handlePdu(inviteEvent); @@ -119,6 +114,11 @@ export class InviteService { }; } + await this.federationValidationService.validateOutboundInvite( + userId, + roomId, + ); + // get signed invite event const inviteResponse = await federationService.inviteUser( inviteEvent,