element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
74 stars 12 forks source link

"Failed to make_join via any server" is not useful feedback to the user #2593

Open benparsons opened 3 years ago

benparsons commented 3 years ago

I see this error very frequently:

Failed to join room
Failed to make_join via any server

It doesn't help me understand what the problem is or what I should do next.

SimonBrandner commented 3 years ago

Related https://github.com/vector-im/element-web/issues/12219

benparsons commented 3 years ago

I'm still seeing this issue frequently. Logs sent. I'm unable to join rooms and have invites remaining in my client.

t3chguy commented 3 years ago

This'll require spec changes for a defined errcode

benparsons commented 3 years ago

This looks like it's caused by https://github.com/matrix-org/synapse/issues/10021

lampholder commented 2 years ago

This is still a stupid error message.

We've got a couple of things here:

1. Thing the first: Probably Synapse error messages are unwieldy

I guess that Synapse offers up errors with just a string (i.e. no sort of unique error code independent of the HTTP response code). I guess that this should change but is a faff. I guess that until it does change, clients feel duty bound to offer up the broad spectrum, opaque, uninternationalisable string directly from the server to the user.

We could do better, though, since in this case I think almost anything is better. Many times when I see this error I actually have joined the room, but I guess something timed out - even the information that this might have happened would be better than this nonsense unfriendly message.

2. Thing the second: Element handles room joins badly

As per that last thing I said, sometimes I think the synchronous request times out, but ultimately I end up joined anyway. Room join requests are rate limited, but it's left to the user to retry manually, which is super annoying, esp. if I'm accepting a bunch of invites.

Why can't the client handle all of this for me? When I ask to join a room, put it in the roomlist with an indicator that it's joining and give it a real good go before giving up. If it's rate limited, retry for me. If it times out, try again later. We could even leave the room name in the room list as a dismissable notice that my request to join failed. The poxy "Failed to make_join via any server" notice doesn't even tell me which room failed to join, so if I tried to join a bunch I know don't even know where to start to find the thing I need to fix.

Right now my assumption is that I have to watch Element until the room is joined to guarantee that it actually does join - I don't even keep using the app until I'm confident I've joined. I would love for us to turn this around.

viasux commented 2 years ago

Every time I join a room, I get "connection timed out," but there's still a wheel at the top left (with no text or context, also it's off-center) which means element is still joining the room lol, so I have to sit here for a long while until it decides to work. I just joined a large room, accidentally, and there not being a "cancel room join" button is worrying, because idk how well my server will handle joining such a large room.

https://user-images.githubusercontent.com/47131867/149643859-19ce0ca8-0f2e-48b1-9bab-1e01bf3c72fe.mp4

t3chguy commented 2 years ago

and there not being a "cancel room join" button is worrying

There's no way for a client to request this from a server, if you want this I suggest a matrix-doc issue for the spec to grow support for it.

lampholder commented 2 years ago

Does this issue have the right labels?

I'm worried that the current set will result in its not getting picked up in our UX improvement loops: image

Specifically, it's not tagged as a bug, it's tagged as occasional (but over federation at least I would call it frequent), and it's tagged with X-Spec-Changes which makes it at least a little bit more intimidating to address.

t3chguy commented 2 years ago

Blindly hiding the underlying error with one which doesn't mean anything specific is trivial, having servers send more specific error codes which clients can rely on an specifically cater to requires Spec & Synapse work.

lampholder commented 1 day ago

Just a note that it's October 2024 and I'm still failing to make_join via any server, and this is still a stupid error message 😄