Wire-android: Message delivery fails silently

Created on 4 Oct 2016  路  31Comments  路  Source: wireapp/wire-android

Hi.

When I send a message, I expect only two possible outcomes:

Option A: the message is delivered and I am not notified.
Option B: the message is not delivered and I am notified.

My spouse and I use Wire. We experienced Option C... So, we switched to Signal.

But here's what I know, in case it helps you find the problem.

I use app.wire.com on my 64 bit Windows 7 machine running Firefox 52.a01 (Nightly) AND on my Android phone (5.1.x). She uses it on her Android phone (5.1.x).

I'm not sure which device I used to send the messages. They still appear in my list of messages.

I tried sending more messages to see if any would fail to be delivered. But they were all delivered.

How can I help gather more information for you?

Most helpful comment

ok, we were able to reproduce the issue!

Using app.wire.com, I sent her a series of 26 messages. Each one was a single letter, starting with 'a' and ending with 'z'. Basically I just typed out the alphabet and hit enter after each letter. It only took 20 seconds... :)

She reports that j, k, l, and w were missing.

All 31 comments

ok, we were able to reproduce the issue!

Using app.wire.com, I sent her a series of 26 messages. Each one was a single letter, starting with 'a' and ending with 'z'. Basically I just typed out the alphabet and hit enter after each letter. It only took 20 seconds... :)

She reports that j, k, l, and w were missing.

My Wire client on Android does show j, k, l, and w.

I'm going to jump in this issue and add that message delivery is quite faulty, this shouldn't happen in a messenger.

While my text posts are always delivered, a friend sent me 4 (recorded with Wire) audios and 2 of them failed (!). That's a very high failure rate... we haven't tested it again, but it definitely happened.

IMPORTANT: These audios DO work in the web app... they just broke on the Android build.

Hello, thanks for reporting. We'd like to look into those text and audio message issues you mentioned.
Could you drop us a line here: https://support.wire.com/hc/en-us/requests/new and we will get back to you asap.
Many thanks.

My spouse and I use Wire. We experienced Option C

What is Option C?

So, we switched to Signal.

Well, good luck with that. After years of using Signal/TextSecure, I can say that I'd rather use SMS than deal with its bugs. (but let's not go off topic)

While my text posts are always delivered, a friend sent me 4 (recorded with Wire) audios and 2 of them failed (!). That's a very high failure rate... we haven't tested it again, but it definitely happened.

This I can relate to. By any chance, was your friend on a stable connection when sending the audio messages? I find that whenever the connection is something less than "very reliable", sending audios results in a very weird experience -- some devices see the audio properly, some don't, some see something loading, some don't see anything at all, etc.

What is Option C?

Anything less than Option A or Option B. I was making a little joke there.

To be clear, what happened was message delivery failed silently. I didn't find out about the failure until I had a face to face conversation with the person I was sending messages to.

[...] I'd rather use SMS [...]

Yeah, SMS appears to be pretty reliable. Too bad it's cleartext!

@david-wire No, I'm not interested in using your in-house support tracker. Github is already part of my workflow. I get notifications, etc.

If you copy and paste everything I say here into your support tool, I won't object. I won't even know.

Even though I'm not willing to expend energy on opening a second ticket elsewhere, I am willing to send you debug logs from the device or install a debug build or whatever. Just let me know what I can do.

Cheers,
--Dave

@daveloyall yes, you can send us some logs directly from the app. In Settings > Advanced > Submit debug report, and include a quick note for us to identify the issue. Thanks!

@daveloyall This issue is very important to us. Without reliability, a messenger is not a messenger.

Can you please tell me, how many devices/clients were involved? From your report I can see that's been you and your spouse and you sent the messages from our webapp and your spouse received them on Android. Does she also use our webapp?

I guess on your side (webapp), you could see the whole alphabet which was sent but she was missing "j, k, l, and w", right?

@bennyn yes, I sent from the webapp, and she received on Android. She does not use the webapp. I use Android, too. I received a copy of my own messages on Android. None were missing.

Our phones are low-end. She was probably on WiFi during the failure.

Reliability doesn't have to be guaranteed delivery. An indicator of failure is sufficient.

I'm facing the same issue, sending from the web app to a friend on Android (and only Android). Messages appear on both my devices (Firefox web app and Android), but my friend doesn't receive them. This happens a few times every day.

Could you be more specific about your client and your friend's? Like, do you happent to know any information about his phone/os/wire version?
Also, do you recall doing anything in particular before you sent the message that was never received? Maybe you or your friend liked a message, or pinged, or whatever.. ? Any thing you noticed could be the right hint :) Since it happens a few times every day, hopefully you can find a pattern.
Have you tried resetting the sessions too? Not sure if it will help (I honestly think it's totally unrelated), but maybe... sometimes bugs work in mysterious ways.

Isn't there some tech, HMAC, which enables systematic identification of missing messages?

Heck, a naive missing message detector would just use a sequence number... So at least, when you receive the next message after a missing one, you'd know then.

I am seeing the same thing, android to android.
messages randomly stay at 'sent' but never deliver (and never show delivered)
I half suspect it sticks like that when the far end is not online at the moment of sending (or close to that).
Very frustrating, as the status is not always shown, so it is impossible to tell if messages are actually there, or to ask them to retry, etc.
This urgently needs fixing. a messaging application that is randomly dropping messages!

I was also facing this issue.
In my case I hadn't recieved the message on my phone (android), but it had been delivered to my Desktop Client (Windows). That's why I noticed that the delivery of an incoming message failed. (Sender Client also was android).

Is there maybe already a solution for that Problem? Or is it already solved in the current Version?
Thanks a lot. Thorsten

Adding my two cents. I have been using wire quite a lot over the past months (both web app and android app) and there appears to be consistent problems with message delivery. I have observed the following:

1) messages being delivered in different orders on different devices
2) messages never being delivered at all (yet not marked as failed)
3) messages being delivered but not marked as such in the client (still marked as "sent" rather than "delivered")

This is particularly bad if either end is on a lossy network connection. My assumption has been that wire does not handle packet loss well, but I haven't looked at the code or documentation to try to figure out if this is just a bug or if the protocol simply is designed in this way.

I'm having problems as well. While having wire open on my phone and PC (linux client) sometimes messages send to me are delivered to the phone, but not to the desktop app. Sending from the desktop app will still work.

Besides that I've noticed some messages are being delivered late on my phone. (An hour or more after they were send)

Re missing messages in Linux client: does this happen after the computer has been sleeping for a while? Because that's a known bug I think (you should check in the wire desktop repository)

Delay in messages on Android: a new version was released today that improves notifications. You should get the update in the immediate future, it should improve some of the issues you've had!

@someoneEsle

No, it happens out of the blue. Even when using the desktop app.

my 2cents:

im using the wire app on android and linux desktop. i've noticed some delivery problems from the android app. i sent a message: and the message did not appear in the chat window, as if it silently disappeared from the chat history. then i updated the wire app to the latest version. i was 2 minor versions behind (x.29.xxx -> latest today). in the new version, the message appeared in the chat window. the sender also received it and replied. that happened while "on the street", with possibly flakey 3G cellphone reception.

another issue i had, i can't remember if this was mobile or desktop, i could not send a message. like i type out a message, but when clicking "send", nothing happens (and i can still edit the text). that was at home with a stable wifi connection.

For what it's worth, sending images from Android on a bad mobile connection makes this issue much worse. I've recently (~3 months ago) had the following issue:

Basic Setup: I have one device online (my phone), target person has two devices online (target phone and target desktop)

What happened:

  1. My phone shows image as sent with no error
  2. Target desktop just shows a white rectangle the size of the image but image never arrived
  3. Target phone gets nothing

This outcome is absolutely unacceptable. On the good side, I've never lost text messages so far.

It happened to me also. I have sent several messages and noticed strange behavior:

  1. Messages with "Delivered" status were delivered
  2. Some messages with "Sent" status were actually delivered
  3. One message with "Sent" status was not delivered

I don't know which is worse - not to deliver message, or deliver it with wrong status :) I don't know if it matters, but I've been using crappy public WiFi plus VPN. Both clients are Android phones

Can confirm the bug. Still there. Some groups are affected, some not. This is not acceptable since you cannot trust if your messages are delivered

@someoneEsle why don't you use mostly unique local message IDs (random UUID4s that are highly likely to be unique) and a client will assign & include when sending, and resend as often as possible until the target client and/or server confirms reception of that specific message id? (sorry if this is something obvious you're already doing) That should easily solve all issues no matter how horrible the connection is, if that technique is consistently used in between all parties - and thanks to the uuid, there would also be no duplicates - the target would need to keep a log of all recently received message IDs to drop duplicates based on that list.

Various friends of mine confirm this misbehavior. As long as this isn't really solved, Wire is eventually useless for serious (group) communication.

*essentially

See link above, I was able to figure out a possible clarification when message delivery fails silently: When a group creator reinstalls its phone, a condition can appear that the creator of a group's messages will fail to send silently to older members of a group.

That's interesting, @ventilator.

Can anybody reproduce https://github.com/wireapp/wire-android/issues/213#issuecomment-251473638 ? I originally performed that simple test in 2016... Maybe things have improved in the meantime.

I don't currently have Wire installed though. Is someone else willing to send a friend 26 one letter messages (the alphabet) and ask their friend to carefully check for missing messages and report back?

Just a note: @daveloyall it definitely happened just with random messages with images in a 1:1 conversation. No new devices, no major time passed (minutes) between messages that worked - so at least sending images has (or had?) a major reliability issue that doesn't depend on any special condition.

I think the best test would indeed be the 26 letters and images, but under really bad conditions (super bad internet connection, e.g. android phone over 2g or something). I don't have those right now, but might get a chance tomorrow, and I have a friend that wouldn't mind the spam for a little test :smile:

@JonasT that's a good idea. We want message delivery failures to occur during the test, so we can determine if the app notifies the user of delivery failure. (Back in 2016, we were able to experience message delivery failure in Wire even on solid networks, but I have no idea if that changed in the meantime.)

Hi.

This issue is very old and I decided to close it (we're trying to clean up our GitHub issues).
We made a lot of changes to handling messages and for a long time now we don't experience any missing messages (I know it was an issue in the past). I did your test with alphabet. All good.
If it happens to you again, please reopen the ticket.

Cheers,

Was this page helpful?
0 / 5 - 0 ratings

Related issues

daebb picture daebb  路  5Comments

someoneEsle picture someoneEsle  路  4Comments

Bugsbane picture Bugsbane  路  4Comments

tomleb picture tomleb  路  4Comments

ghsrcgh picture ghsrcgh  路  3Comments