Skip to content

Element X iOS: re-inviting a user who left a DM silently does nothing — no /invite request is ever sent #5987

Description

@timurkins253

Steps to reproduce

  1. Have a 1:1 DM room (encrypted, join_rule: invite, history_visibility: invited) with another user on the same homeserver.
  2. The other user leaves the room. In our case they did not leave manually — their account was deactivated server-side (MAS/MSC3861 deployment), and deactivation emits a leave membership event on their behalf for every room.
  3. The account is later reactivated, so the user exists and is active again.
  4. Open the DM in Element X on iOS and try to invite them back — either from the room's member/invite screen, or via the "You are alone in this room / invite someone" prompt.

Outcome

What did you expect?

The client sends POST /_matrix/client/v3/rooms/{roomId}/invite and the user is invited back.

What happened instead?

Nothing reaches the server, and the user sees an error toast in the app.

Two distinct symptoms, in this order:

a) Before clearing the cache — the user who left is still shown as a room member. In the invite dialog they appear pre-selected with a checkmark, and searching for them by display name yields the same pre-selected entry, even though the room timeline correctly shows their "left the room" event. Pressing invite errors out.

b) After clearing the cache — the room correctly renders as "You are alone in this room. Invite someone?", so the client's view of membership is now right. Pressing "Invite" still fails with an error.

In both cases the invite request is never sent. We checked the server side over a full day of attempts across both symptoms:

  • POST /_matrix/client/v3/rooms/{roomId}/invite — zero occurrences from this account in the Synapse homeserver log.
  • Same for the reverse proxy access log in front of Synapse — the request never leaves the client.
  • The account's other writes from the same app session in the same period work fine (message sends, presence, sliding sync), so this is not connectivity or an expired session.

The failure is specific to the invite action.

Additional context: Element Desktop works on the same room and account

With the identical account, in the identical room, Element Desktop 1.12.25 sends the request and it succeeds:

"OPTIONS /_matrix/client/v3/rooms/!room%3Aexample.org/invite HTTP/1.1" 204
"POST    /_matrix/client/v3/rooms/!room%3Aexample.org/invite HTTP/1.1" 200

The invited user accepted 12 seconds later and the DM is functional again. So neither permissions nor server policy are involved: the inviter holds power level 100 in the room, invite requires 0, and the homeserver accepts invites for this room normally (we also verified separately that the homeserver accepts invites for both active and deactivated target users).

Your phone model

iPhone 15 Pro Max

Operating system version

iOS 26.6.0

Application version

Element X 26.08.0

Homeserver

Synapse 1.150.0 with matrix-authentication-service (MSC3861 delegated auth)

Will you send logs?

Not attached yet — can provide a rageshake on request.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    X-Needs-InfoThis issue is blocked awaiting information from the reporter

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions