Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retry behaviour is unusable; messages should always send in the order they were written, and should not have to be individually retried by the user. #1670

Open
ara4n opened this issue Sep 9, 2023 · 1 comment
Labels
A-Timeline O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect X-Needs-Product X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue

Comments

@ara4n
Copy link
Member

ara4n commented Sep 9, 2023

Steps to reproduce

  1. Send some messages when on bad connectivity (e.g. wifi whose router is disconnected, or when server is being restarted)
  2. Some of them may show as red (failed to send)
  3. Some of them may go through.
  4. Messages are not sent in the right order, and there's nothing you can do about it.
  5. You then have to manually re-send each message which has failed.
  6. To make matters even worse, the re-send button is inexpliably hidden from the context menu: Resend should be included also in the actions menu for failed echoes #1186
  7. ...and the hit mask on the bubble to trigger the re-send button is fiddly.

Here's a video of me spending a full minute trying to get messages to send in the right order.

RPReplay_Final1694264580.mov

Outcome

What did you expect?

  1. Messages should ALWAYS send in the order they were typed. Whether they are in state sending or unsent in a given room, they should sit in a single ordered queue. If you type three messages and message 1 and 2 fail but 3 sends, then the current behaviour, which the user can do NOTHING about, is that the messages will be sent in order 3,1,2 (or 3,2,1 if they retry them in the wrong order). I.e. message 3 will always be out of order, making the user look like they are talking gibberish.
  2. @kongo09 makes a good case that the user should never need to explicitly trigger a resend; the app should do it automatically whenever it comes back into connectivity (or do so in the background), and if the user decided in retrospect that stuck messages are no longer relevant they can go through deleting them.
  3. That said, given the user might know better than the app when to retry to send messages and "kick" the retry queue, I would personally still give an affordance to the user to let them kick the app to (re)send a message. This could be simply by sending a new message to flush the queue, or by having a "retry now" button on the context menu for messages which are stuck in sending/failed state.

What happened instead?

Extreme frustration at the app sending my messages in the wrong order, and forcing me to manually retry them one by one. Especially given this was identified last year on the legacy apps as a Chronic Bug... and fixed there on all 3 platforms.

Your phone model

No response

Operating system version

No response

Application version

380

Homeserver

No response

Will you send logs?

No

@ara4n ara4n added the T-Defect label Sep 9, 2023
@ara4n ara4n changed the title Retry behaviour is unusable; messages should always send in the order they were written, and should not be individually retried. Retry behaviour is unusable; messages should always send in the order they were written, and should not have to be individually retried by the user. Sep 11, 2023
@Velin92 Velin92 added the X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue label Sep 11, 2023
@Velin92
Copy link
Member

Velin92 commented Sep 11, 2023

We only have a single message re-send API as of right now, we would need a global re-send function to solve this probably.

@stefanceriu stefanceriu added X-Needs-Product A-Timeline S-Minor Impairs non-critical functionality or suitable workarounds exist O-Uncommon Most users are unlikely to come across this or unexpected workflow labels Sep 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Timeline O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect X-Needs-Product X-Needs-Rust This issue needs a Rust SDK change. It must have a link to a Rust SDK issue
Projects
None yet
Development

No branches or pull requests

3 participants