bug: Invites aren't properly reaching some clients #1249
Labels
No labels
Blocked
Bug
Cherry-picking
Database
Dependencies
Dependencies/Renovate
Difficulty
Easy
Difficulty
Hard
Difficulty
Medium
Documentation
Enhancement
Good first issue
Help wanted
Inherited
Matrix/Administration
Matrix/Appservices
Matrix/Auth
Matrix/Client
Matrix/Core
Matrix/Federation
Matrix/Hydra
Matrix/MSC
Matrix/Media
Meta
Meta/CI
Meta/Packaging
Priority
Blocking
Priority
High
Priority
Low
Security
Status
Confirmed
Status
Duplicate
Status
Invalid
Status
Needs Investigation
Support
To-Merge
Wont fix
old/ci/cd
old/rust
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
continuwuation/continuwuity#1249
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
After 0.5.0 there's been a few reports of invites from the local server not properly reaching clients, manifesting as either not being presented to the user at all, or being presented with broken information:

This is likely related to information clients need to construct an invite being missed over /sync, but needs investigation.
Element Web seems to display these as joined rooms? Not sure what's happening here
(account_data value omitted for brevity)
I think I've been running into this on our new homeserver, here's logs from around that time, this was trying to create a DM between two users both on the same server. both using cinny as clients but I also use fluffychat on my phone which finally showed an invite after a few refreshes. tried to clear cinny client cache which seems to sometimes help but not always. let me know if there is any other info i can provide :)
Based on my little investigation, the issue seems to originate from here:
| MembershipState::Invite => {// TODO: make sure that passing None for `last_state` is correct behavior.// the call from `append_pdu` used to use `services.state.summary_stripped`// to fill that parameter.self.mark_as_invited(user_id, room_id, pdu.sender(), None, None).await?;},None is getting inserted into state_cache, which is then served as an empty object directly to clients from /sync