-
-
Notifications
You must be signed in to change notification settings - Fork 172
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
Handle messages not bridged #1
Comments
Reactions or some sort of annotations could maybe also be used: matrix-org/matrix-spec-proposals#441 |
Aggregations or custom EDUs would be nice as a "this message has been bridged" acknowledgement, but I'm guessing the spec/synapse impl will take quite a while still. I think either the whatsapp web servers or go-whatsapp actually does retry sending if the phone is disconnected at the time. The bridge probably needs to handle cases where the connection fails completely (e.g. another web session is active) |
WhatsApp does not ensure the same order on all distributed devices. So the mentioned scenario occurs as well the case when $device is offline. |
Yeah and I hate when it happens. It is a source of confusion in the discussion. You need timeout. Retrying after some minutes is non sens imho. |
I think I added messages corresponding to that error log at some point. |
…x-whatsapp:master into master Reviewed-on: https://git.tilera.org/tileradotorg/mautrix-whatsapp/pulls/1
A common pitfall with matrix bridges is that your message is sent to matrix but not actually bridged to the third party network. It's a pitty, as you need to really trust the code but have no way to ensure your message is actually bridged. For example, I developed a stupid irc bot which just reply on message just to be able to test my IRC bridge instance.
This a complex problem that cannot be totally solved at the bridge level, but I think we could help a bit the user. Obviously we can just add some retry, but I don't think it's a good solution. Imagine this:
Now we are in the situation where from my side I see the message A then B, but the users on the third party network see B then A.
That's why I think the retry duration should be very short (something like one minute), and the retries should stop as soon as we receive a message from the third party network.
The thing is to notify the user that the message was not bridged. For this, I see two solution:
The solution 1 keeps a clean room's history , but is not very user friendly and force the user to go to another room to know what happened. The second solution would be more easier to understand by the user, but will add some garbage to the room's history.
https://github.com/tulir/mautrix-whatsapp/blob/2ec6ad242c2c03961aa689e01a24ab7970fd4279/portal.go#L788
The text was updated successfully, but these errors were encountered: