From a4e8d78c1b650ca75d9f055f540fcc7872a090ca Mon Sep 17 00:00:00 2001 From: Kieran Hannigan Date: Sun, 15 Mar 2026 14:41:03 +1100 Subject: [PATCH] bridgev2: invalidate inPortalCache on Matrix leave when bridge_matrix_leave is false Without this, MarkInPortal short-circuits on the cache hit and never calls EnsureJoined, so the user is never re-invited to the room. --- bridgev2/portal.go | 1 + 1 file changed, 1 insertion(+) diff --git a/bridgev2/portal.go b/bridgev2/portal.go index 16aa703b..f332c7af 100644 --- a/bridgev2/portal.go +++ b/bridgev2/portal.go @@ -2001,6 +2001,7 @@ func (portal *Portal) handleMatrixMembership( membershipChangeType := MembershipChangeType{From: prevContent.Membership, To: content.Membership, IsSelf: isSelf} if !portal.Bridge.Config.BridgeMatrixLeave && membershipChangeType == Leave { log.Debug().Msg("Dropping leave event") + sender.inPortalCache.Remove(portal.PortalKey) return EventHandlingResultIgnored //.WithMSSError(ErrIgnoringLeaveEvent) } targetGhost, _ := target.(*Ghost)