Leave/rejoin in invite-only room soft fails membership event #1767

Open
opened 2026-05-14 08:52:15 +00:00 by bebop · 2 comments

Description:

In an invite-only room (initially made on matrix.org), a user left and rejoined. Myself and another user with continuwuity clients (0.5.8 and 0.5.9) got these logs:

WARN process_inbound_transaction{origin="matrix.org"}: conduwuit_core::matrix::state_res::event_auth:
  sender cannot join as they are not invited to the invite-only room
  sender=<snip> membership_event_id=Some("$PNIx5DnM_qfg_x8gzw_m5pu-J1eTtBHLiXK4oHbTUAQ")
  membership="leave"

INFO process_inbound_transaction{origin="matrix.org"}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu:
  Soft failing event event_id=$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw

WARN process_inbound_transaction{origin="matrix.org"}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu:
  Event was soft failed event_id=$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw

WARN process_inbound_transaction{origin="<snip>"}: conduwuit_service::rooms::event_handler::handle_incoming_pdu:
  Prev $oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw failed: M_INVALID_PARAM: Event has been soft failed

In checking the member list, I saw their join event matched ($oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw).

$ curl -H "Authorization: Bearer $CONTINUWUITY_TOKEN" 'https://matrix.andrewzah.com/_matrix/client/v3/rooms/%21PgZOgErOSVJPUGmhkw%3Amatrix.org/members' | jq | grep '"displayname": "<snip>"' -B 5 -A 12
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100   7444   0   7444   0      0  29494      0                              0
    {
      "content": {
        "avatar_url": "<snip>",
        "displayname": "<snip>",
        "membership": "join"
      },
      "event_id": "$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw",
      "origin_server_ts": 1778743883702,
      "redacts": null,
      "room_id": "<snip>",
      "sender": "<snip>",
      "state_key": "<snip>",
      "type": "m.room.member"
    },

Problem:

The user who left and rejoined couldn't see messages coming from the continuwuity instance users.

Workaround:

After restarting my continuwuity instance, they were able to see my messages again.

**Description**: In an invite-only room (initially made on matrix.org), a user left and rejoined. Myself and another user with continuwuity clients (0.5.8 and 0.5.9) got these logs: ``` WARN process_inbound_transaction{origin="matrix.org"}: conduwuit_core::matrix::state_res::event_auth: sender cannot join as they are not invited to the invite-only room sender=<snip> membership_event_id=Some("$PNIx5DnM_qfg_x8gzw_m5pu-J1eTtBHLiXK4oHbTUAQ") membership="leave" INFO process_inbound_transaction{origin="matrix.org"}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu: Soft failing event event_id=$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw WARN process_inbound_transaction{origin="matrix.org"}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu: Event was soft failed event_id=$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw WARN process_inbound_transaction{origin="<snip>"}: conduwuit_service::rooms::event_handler::handle_incoming_pdu: Prev $oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw failed: M_INVALID_PARAM: Event has been soft failed ``` In checking the member list, I saw their join event matched (`$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw`). ``` $ curl -H "Authorization: Bearer $CONTINUWUITY_TOKEN" 'https://matrix.andrewzah.com/_matrix/client/v3/rooms/%21PgZOgErOSVJPUGmhkw%3Amatrix.org/members' | jq | grep '"displayname": "<snip>"' -B 5 -A 12 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7444 0 7444 0 0 29494 0 0 ``` ```json { "content": { "avatar_url": "<snip>", "displayname": "<snip>", "membership": "join" }, "event_id": "$oZzUBf7z6XhBwDnq_zUkxe3rFC-V0N-dEKiXL0p8DTw", "origin_server_ts": 1778743883702, "redacts": null, "room_id": "<snip>", "sender": "<snip>", "state_key": "<snip>", "type": "m.room.member" }, ``` **Problem**: The user who left and rejoined couldn't see messages coming from the continuwuity instance users. **Workaround**: After restarting my continuwuity instance, they were able to see my messages again.
Owner

This sounds like the correct behaviour - a user tried a leave -> join transition in a room that requires leave -> invite -> join, so their join membership was illegal and consequently soft-failed. Unless you believe otherwise?

This sounds like the correct behaviour - a user tried a leave -> join transition in a room that requires leave -> invite -> join, so their join membership was illegal and consequently soft-failed. Unless you believe otherwise?
Author

Ah ok, I wasn't sure if it was related. I'm not sure why starting my continuwuity instance fixed them not seeing my messages.

Ah ok, I wasn't sure if it was related. I'm not sure why starting my continuwuity instance fixed them not seeing my messages.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#1767
No description provided.