-
-
Notifications
You must be signed in to change notification settings - Fork 673
Description
When you go to read a conversation, we load the messages that are in it if we don't already have them. While we're doing that fetch, we show a "loading" animation of placeholder messages. But then if that fetch fails with an exception, we carry on showing that loading-animation forever.
That's bad because after the fetch has failed, we are not in fact still working on loading the messages, so the animation is effectively telling the user something that isn't true. It's also misleading when trying to debug, as it obscures the fact there was an error and not just something taking a long time.
Cases where we've seen this come up recently:
- Message list loads forever when some messages have reactions #4156 turned out to be a server bug, where the server returned garbled data on fetching any messages that had emoji reactions.
- We'd actually seen this bug before, when it was live on chat.zulip.org and caused the same symptom. It was fixed within a couple of days, but perhaps unsurprisingly there was a deployment that happened to have upgraded to master within that window of a couple of days, and stayed there.
- Long, sometimes endless loading in message list #4033 may in part reflect another case of this -- at least when the loading is "endless" and not merely long. (Though because that one goes away on quitting and relaunching the app, it's definitely not the same server bug and probably is a purely client-side bug.)
Instead, when the fetch fails we should show a widget that's not animated and says there was an error. Preferably also with a button (low-emphasis, like a text button) to retry.
Some chat discussion of how to implement this starts here, and particularly here and after.