Skip to content

Cannot invite appservice users which do not (yet) exist #7922

@turt2live

Description

@turt2live

Appservices typically follow this sort of flow:

  1. User invites @_example_user:localhost to a room.
  2. Homeserver finds out that @_example_user:localhost doesn't exist, but is in the namespace for an appservice.
  3. Homeserver queries the appservice so it can create the user
  4. Appservice creates the user
  5. Homeserver finishes processing the invite, sending it to the appservice

Recently we added a proof of life check to see if a user exists before proceeding with the invite though (matrix-org/matrix-react-sdk#2317). This fails on Synapse because the user query isn't done, so the request for a profile fails, which means Riot won't try and invite the user, which means the steps above mean nothing because they aren't executed.

TLDR: Synapse needs to hit the appservice's /users endpoint for profile lookups too.

Metadata

Metadata

Assignees

Labels

P2S-MajorSeverely degrades major functionality or product features, with no satisfactory workaroundT-Defect

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions