Members list incomplete #85

Closed
opened 2026-02-23 16:12:27 +00:00 by mplorentz · 9 comments
Collaborator

I looked last week and there were at least dozens of users in the meta.spaces.coracle.social General room. But today I am only seeing three:
Screenshot 2026-02-23 at 11.09.05 AM.png

Interestingly the list does not include myself or some of the recent posters in the room.

I looked last week and there were at least dozens of users in the [meta.spaces.coracle.social General room](https://app.flotilla.social/spaces/meta.spaces.coracle.social/5534503510815646#8745300549945492). But today I am only seeing three: ![Screenshot 2026-02-23 at 11.09.05 AM.png](/attachments/1f9e512b-2fa6-4d13-a0bb-1f3ae6563b3e) Interestingly the list does not include myself or some of the recent posters in the room.
hodlbod added the priority label 2026-02-24 00:04:23 +00:00
hodlbod added this to the Current milestone 2026-02-24 00:04:25 +00:00
Owner

This is weird, I'm seeing the full member list. Is it still abbreviated or has it recovered? The likely culprit here is that we're building the member list in two ways: using the full member list, and falling back to join/leave events.

This is weird, I'm seeing the full member list. Is it still abbreviated or has it recovered? The likely culprit here is that we're building the member list in two ways: using the full member list, and falling back to join/leave events.
Author
Collaborator

I just checked again, I still see the same three members. Yes maybe I only have a few recent joins and leaves or something.

I just checked again, I still see the same three members. Yes maybe I only have a few recent joins and leaves or something.
Owner

I can't replicate this, what happens if you log out and back in? I imagine it's probably a syncing thing, might be fixed in the most recent version.

I can't replicate this, what happens if you log out and back in? I imagine it's probably a syncing thing, might be fixed in the most recent version.
hodlbod self-assigned this 2026-03-12 19:52:16 +00:00
Owner
@mplorentz
Author
Collaborator

Logging out and logging back in gives the same result, and I can also reproduce this across app.flotilla.social, shipwreck.scuttle.works, and a local dev server. I can do some digging since you can't reproduce.

Logging out and logging back in gives the same result, and I can also reproduce this across app.flotilla.social, shipwreck.scuttle.works, and a local dev server. I can do some digging since you can't reproduce.
hodlbod removed their assignment 2026-03-19 17:30:14 +00:00
mplorentz was assigned by hodlbod 2026-03-19 17:30:14 +00:00
hodlbod removed this from the Current milestone 2026-04-02 18:57:08 +00:00
hodlbod added the dev label 2026-04-02 19:08:02 +00:00
hodlbod added this to the Current milestone 2026-04-02 19:08:13 +00:00
hodlbod added this to the Spaces and Rooms project 2026-04-02 19:45:17 +00:00
mplorentz was unassigned by hodlbod 2026-04-09 21:43:29 +00:00
Contributor

Hello @hodlbod I can take a look at this. The dual path (full member list vs join/leave events) seems like it could cause inconsistencies depending on sync state — I’ll try to reproduce it locally and trace how the list is being populated.

Hello @hodlbod I can take a look at this. The dual path (full member list vs join/leave events) seems like it could cause inconsistencies depending on sync state — I’ll try to reproduce it locally and trace how the list is being populated.
Owner

Sounds good, I've considered dropping RELAY_ADD_MEMBER and RELAY_REMOVE_MEMBER events too, it doesn't really do any good except as a fallback for relays with a missing member list, which would be due either to a poor implementation or the members list being too large. But if the members list is absent, we can more reliably show that to the user — i.e., "This space doesn't provide a relay list." We do need to calculate the user's membership in that case though. Let's do something like this:

  • Only fetch RELAY_ADD_MEMBER and RELAY_REMOVE_MEMBER for the current user
  • Get rid of deriveSpaceMembers entirely and work with the relay's membership list directly. If missing, hide UI elements or show an error state about the missing list.
  • Update deriveUserSpaceMembershipStatus to directly fetch add/remove member and list events, moving the logic for event replay into that function.
Sounds good, I've considered dropping RELAY_ADD_MEMBER and RELAY_REMOVE_MEMBER events too, it doesn't really do any good except as a fallback for relays with a missing member list, which would be due either to a poor implementation or the members list being too large. But if the members list is absent, we can more reliably show that to the user — i.e., "This space doesn't provide a relay list." We do need to calculate the user's membership in that case though. Let's do something like this: - [ ] Only fetch RELAY_ADD_MEMBER and RELAY_REMOVE_MEMBER for the current user - [ ] Get rid of `deriveSpaceMembers` entirely and work with the relay's membership list directly. If missing, hide UI elements or show an error state about the missing list. - [ ] Update `deriveUserSpaceMembershipStatus` to directly fetch add/remove member and list events, moving the logic for event replay into that function.
Contributor

Great! I'll start working on the same.

Great! I'll start working on the same.
nayan9617 was assigned by hodlbod 2026-04-10 22:28:34 +00:00
Contributor

@hodlbod PR #191 is ready for review - implements all 3 point you mentioned.

@hodlbod PR #191 is ready for review - implements all 3 point you mentioned.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: coracle/flotilla#85