Git Product home page Git Product logo

Comments (21)

BurnyBoi avatar BurnyBoi commented on May 26, 2024

Just tested on another existing account without importing a key file from Riot, and same result. Consistently getting this error about members not being synced.

from mirage.

mirukana avatar mirukana commented on May 26, 2024

I think the issue comes from here in nio, where I added some prints. Can you install this branch, restart mirage and report what appears in your terminal then when you try to send a message?

git clone https://github.com/mirukana/matrix-nio
cd matrix-nio
git checkout origin/mirage-issue-54
pip3 install --user -U '.[e2e]'

from mirage.

BurnyBoi avatar BurnyBoi commented on May 26, 2024

I've redacted much of the personal info in here since it had my token and a very large list of room members, but here is basically what I got:

Members synced: False
Joined members response: JoinedMembersResponse(uuid='', start_time=None, end_time=None, timeout=0, transport_response=<ClientResponse(https://matrix.org/_matrix/client/r0/rooms/!isubisudvisub:matrix.org/joined_members?access_token=<my_token>) [200 OK]>
<CIMultiDictProxy('Server': 'nginx/1.6.2', 'Date': 'Thu, 18 Jun 2020 16:31:47 GMT', 'Content-Type': 'application/json', 'Content-Length': '19387', 'Connection': 'keep-alive', 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept, Authorization')>
, members=[RoomMember(user_id='@example:matrix.org', display_name='Example', avatar_url=None), RoomMember(user_id='@example2:matrix.org', display_name='Example2', avatar_url='mxc://matrix.org/RgrpUJWYPrTpzSqGQMsoPDRD'),<repeats for all 200 members>], room_id='!isubisudvisub:matrix.org')

from mirage.

mirukana avatar mirukana commented on May 26, 2024

I updated the branch to add more logging, make sure to paste all the lines (you missed the "members synced 2" in the previous post).

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

ok, this is starting to happen in more encrypted rooms, and logging out and back in doesn't fix the issue which is really odd, and even though my other account doesn't show up in the encrypted roomlist, i can still send messages from that account into the room, but the icon and name are missing, until i re-open the room .

from mirage.

mirukana avatar mirukana commented on May 26, 2024

I updated the branch to add more logging, make sure to paste all the lines (you missed the "members synced 2" in the previous post).

Can you do this then?

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

one thing i've noticed with this error, is that my other account is always what's missing from the sidebar, it's never another room member, it can't be a coincidence so many times ?

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

and if i send messages from the other account, and then close and re-open the room, sometimes the other account will show up, and then it lets me send messages .

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024
members_synced:  4 0 3
room_send: members synced: False
members_synced:  4 0 3
_handle_joined_members: members added:  2
room_send: members response: <class 'nio.responses.JoinedMembersResponse'>
members_synced:  4 0 3
room_send: members synced 2: False
members_synced:  4 0 3
X 23:47:29 | python: 
Traceback (most recent call last):
  File "qrc:/src/backend/qml_bridge.py", line 82, in on_done
    result = future.result()
  File "/usr/lib64/python3.8/concurrent/futures/_base.py", line 432, in result
    return self.__get_result()
  File "/usr/lib64/python3.8/concurrent/futures/_base.py", line 388, in __get_result
    raise self._exception
  File "qrc:/src/backend/matrix_client.py", line 455, in send_text
    await self._send_message(room_id, content, tx_id)
  File "qrc:/src/backend/matrix_client.py", line 770, in _send_message
    await self.room_send(
  File "/home/oracle/Documents/GitHub/matrix-nio/nio/client/async_client.py", line 1481, in room_send
    message_type, content = self.encrypt(
  File "/home/oracle/Documents/GitHub/matrix-nio/nio/client/base_client.py", line 114, in inner
    return fn(self, *args, **kwargs)
  File "/home/oracle/Documents/GitHub/matrix-nio/nio/client/base_client.py", line 1158, in encrypt
    raise MembersSyncError(
nio.exceptions.MembersSyncError: The room is encrypted and the members aren't fully synced.

from mirage.

mirukana avatar mirukana commented on May 26, 2024

How many joined members does this room contain, including yourself, with a fully loaded member list? 4?

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

4, yes .

from mirage.

FoundOne avatar FoundOne commented on May 26, 2024

I can confirm that it happens on Manjaro-arm (PineBook Pro) too. That's maybe the main thing which makes Mirage unusable for me. I still can read the messages from the encrypted rooms.

from mirage.

mirukana avatar mirukana commented on May 26, 2024

Can you still reproduce this after the dev branch commit d127ad9?
You might need to install a special branch of matrix-nio for the test, see #31 (comment)

from mirage.

FoundOne avatar FoundOne commented on May 26, 2024

It's much better, but it still happens for some encrypted rooms. It looks like it happens on some crowded ones, but that's just a speculation. I'm using the head on the dev branch.

from mirage.

mirukana avatar mirukana commented on May 26, 2024

I need more info on the room that fails, compare Mirage's member list with the one from a client that handles the room correctly (e.g. Element):

  • Is there any member that shouldn't be here, e.g. members that already left or were kicked?
  • Are there missing members? Did they join the room recently?
  • Any missing "x joined/left the room" events at the timeline's bottom?

If that helps, you can do this to get the number of loaded members in Mirage:

  • Press F1 to open the debug console
  • Type ModelStore.get("@your_user_id:example.org", "!theRoomId:example.org", "members").count. You can quickly copy the user and room ID by right clicking on your account and the room in the left panel.

from mirage.

FoundOne avatar FoundOne commented on May 26, 2024

My guess about the user count is totally wrong. The number of users varies. The server I'm on, is quite new, so there are still no kicked/banned for now. It seems Mirage misses some invitations. I think it should show them, right? I saw it doing it. Edit: It looks like it only happens in non-encrypted rooms. The encrypted ones don't show the invitations.

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

encrypted rooms do show invited user though ?

from mirage.

FoundOne avatar FoundOne commented on May 26, 2024

It does not show all of them sometimes. There are some invitations missing. I looked at Element in the web browser. I guess I have to find a way to reproduce it.

from mirage.

mirukana avatar mirukana commented on May 26, 2024

Can you still reproduce this in 0.6.2? Make sure you have matrix-nio 0.15.1.

from mirage.

theotheroracle avatar theotheroracle commented on May 26, 2024

invites still don't show up in encrypted rooms, which is what causes the bug seemingly, but as of yet i haven't gotten a membersyncerror

from mirage.

mirukana avatar mirukana commented on May 26, 2024

The invite bug has been fixed in poljar/matrix-nio@560a4a0

from mirage.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.