When I receive a MMS, I open it to read it and the next day, I receive the same MMS during one week. There is no issues with the content of the MMS, it's correctly downloaded.
I suspect that the MMS is downloaded correctly but not marked as read for my network operator(Swisscom).
Operator: Swisscom (Switzerland)
Device : samsung SM-G925F (zeroltexx)
Android : 5.1.1 (G925FXXU3QOKN, LMY47X.G925FXXU3QOKN)
Memory : 52M (22.86% free, 256M max)
Memclass: 256
OS Host : SWDD5010
App : Signal 3.10.0
Here's the log : https://gist.github.com/anonymous/7c85725947a676ea0479
closing as duplicate of #4387
Shouldn't we separate this issue "receiving one MMSÂ per day on Swisscom" and the one marked as a duplicate which started as an issue receiving MMS on Swisscom (granted it now has information on the duplicate MMSÂ bug as well)?
Also this page should reference those bugs IMHO : http://support.whispersystems.org/hc/en-us/articles/214785937-I-have-MMS-issues-What-can-I-do-
@agrajaghh Could you please reopen and unduplicate this issue?
Receiving the same MMS every day and not be able to receive MMS is not the same thing IMHO. All my contacts on Swisscom are affected by this multi-MMS issue which makes using Signal as a default SMS/MMS application problematic...
Thanks
I have the same problem, I received two MMS some days ago. One of them did not display the image (only a black block), the other did. Since then, both MMS keep arriving again and again a few times a day, still one displaying a black block and one the image.
https://gist.github.com/53eca9d48c5e53bbc91a
@vdveer Please do not post on our issue tracker if you're using SMSSecure. Contact them for support with their product.
I got the same issue, MMS being resent every day until they expire in Swisscom network when using Signal as default SMS/MMS app.
They are delivered fine every day just as @Prosouth described.
Operator: Swisscom (Switzerland)
Device : Sony E5823 (E5823)
Android : 6.0 (3574277109, 32.1.A.1.185)
Memory : 21M (12.95% free, 192M max)
Memclass: 192
OS Host : BuildHost
App : Signal 3.16.0
Debug log can be found at
https://gist.github.com/22ec8d284156b36301353bf4b3186cfc
https://gist.github.com/fa60d44b2184c5520dc3954c334ec925
Same issue for me and my friend. MMS messages from non-Signal contacts is delivered at least twice over a few days. Operator company tech support thinks it's because the Signal app doesn't mark them as "read" or "delivered" to the network.
Operator: Vimla (Sweden)
Device: Fairphone 2
Android: 5.1
App: Signal 3.16.0
Friend:
Operator: Telia (Sweden)
Received a duplicate 19:58 CET, but their is no such time stamp in the log.
Operator: Vimla (Telenor, Sweden)
I was ready to submit a bug report for this, but I think this is the same.
I'm using T-Mobile Netherlands. MMS messages are always sent multiple times. The intervals are getting bigger every time (eventually resulting in a time out), indicating that the provider doesn't get a confirmation back from Signal upon successfully delivery.
This is a very critical bug and I'm considering leaving Signal only because of this.
Keep in mind that there is no need to leave signal entirely, one can just stop using it as an SMS app.
Why hasn't this issue been marked as defect/bug? It clearly is.
Signal fails to send "ack, got message" or whatever has-been-delivered-marks to the sending server. This should be fixed soon, as it causes lots of annoyances. Happens with Swisscom and T-Mobile worldwide.
Can't reproduce on t-mobile. Signal does send the ACK, so this is one of many carrier-specific, region-specific, device-specific, or rom-specific MMS bugs. It's most likely that only someone who can reproduce this will be able to submit a PR with a fix.
I've got the same issue on two CyanogenMod phones on T-Mobile in Germany.
Signal 3.18.3
Same here with Congstar in Germany, LineageOS 2017-01-10, Signal 3.25.3.
Still happening with latest version (3.25.4) on Fairphone OS 1.10.1 (Android 5.1)
Same problem here, swisscom, sony z5 compactcompact E5823 android 6.0.1
I receive one extra copy of MMS messages. Operator Tre (Sweden), Sone Xperia 5 Compact, Android 7.
I have the same issue with swisscom for months. I received the same MMS many times at the same hour every next day.
This is very annoying.
Signal 4.0.0 - Android 6.0.1 - Samsung SM-G389F
@fredinvdg @RandomReaper @FaffeF @kartoffelheinz @jochenberger
Just picking on the people who mentioned things this year. Debug logs will be what helps the most here.
Ok @jeremymasters , I captured two logs yesterday, the first one after the first MMS was received, then a new log after the second one. Though I can't be sure the relevant information is in the logs, they seem to be quite short?
https://gist.github.com/cf93e967205b66fb993ffd43654fab85
https://gist.github.com/1e8969a0c1c1da6ff2d6d67d93f4bfdc
@FaffeF Thanks! I'm just an observer here, but I _know_ the logs are what the devs really need for speeding up debugging.
@fredinvdg sounds like you get hit multiple times. Do you have any logs to add? It'd probably help a great deal.
I have the same issue (provider == Telenor/Sweden). I've reproduced it with various hardware (Nexus 1, HTC One M8, M9 and Nexus 5X), android (stock & cyanogen) and different versions of Signal.
I encounter this problem almost every day, let me know if you need logs.
The only thing in common is my provider so maybe that's something to dig in to?
Rgds
I encounter the same problem. My operator is Swisscom, too, but I also get the same MMS every day when it comes from another operator (Orange France, I think).
Is there a workaround/tweak?
(Swiccom operator, duplicated MMS, debug file joined, same bug for a long time )
Hi,
I received the same MMS for the second time at approx the same time 24h later.
You can have a look at the debug file below :
Wait! The log might look strange as the data chanel (4G) was not on. I had to activate it to get the MMS. This is fine.
What it not normal is to get the MMS a second time.
https://gist.github.com/65c8c6774a93fee3cea8e0ebb063808a
I dont know enough about Signal or cellphone to check what is going on in this debug file.
I'd be happy to get some news if someone could have a look.
Regards.
I've been experiencing this problem too. I just cleared out MMS via the stock Messaging app, but have switched back to Signal as default app and am asking my friend whose endlessly-repeating MMSes had been plaguing me to send a test MMS so I can acquire debug logs too. FWIW, I'm using OnePlus 5 / Oxygen 4.5.6 / where SIM 2 is swisscom.
https://gist.github.com/anonymous/dbc5d3902451c22d8f9d02815a14c602 taken right after receiving the original MMS at 2017.08.07 15.19:07 GMT+02:00.
https://gist.github.com/anonymous/7b52cf5bd44f70974d18828eb81f722b taken after receiving the duplicate MMS at 2017.08.08 15:19:23 GMT+02:00, unfortunately, not capturing the exact time of receipt. :/
Caught it closer today. https://gist.github.com/2c5367f002dd90377718afdb6d76ec71 taken after receiving duplicate MMS at 2017.08.09 15:19:48 GMT+02:00, but the log still looks like it was truncated. Is there a way to ask Signal to keep more logs?
Here a log directly after a MMS for the 2nd or 3rd time has arrived: https://gist.github.com/8d5f91bc02f84a17fa2ee4d50ecd837c
Hey, this bug affects us too. When Signal user receives MMS from non-Signal sender, "delivery success report" is not being generated and sent to mobile network operator. We've confirmed that with Czech T-Mobile, that they re-deliver the MMS because no successfull delivery report was send by MS (mobile station/phone)
So the solution would be to check the sources for missing or incorrect delivery report generation.
Will do that if I gather some time for it over next week.
Also duplicate of #3149
Proposal solution is this:
I'm not sure if the implementation fits the guidelines, please review @moxie0
Inspiration taken from Android SMSMMS RetrieveTransaction.java#L287
diff --git a/src/org/thoughtcrime/securesms/database/MmsDatabase.java b/src/org/thoughtcrime/securesms/database/MmsDatabase.java
index 248ae23a..87f5318a 100644
--- a/src/org/thoughtcrime/securesms/database/MmsDatabase.java
+++ b/src/org/thoughtcrime/securesms/database/MmsDatabase.java
@@ -1094,6 +1094,7 @@ public class MmsDatabase extends MessagingDatabase {
public static final int DOWNLOAD_SOFT_FAILURE = 4;
public static final int DOWNLOAD_HARD_FAILURE = 5;
public static final int DOWNLOAD_APN_UNAVAILABLE = 6;
+ public static final int DOWNLOAD_SEND_ACK_FAILED = 7;
}
public static class MmsNotificationInfo {
diff --git a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
index 34d933ed..5ade7b0b 100644
--- a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
@@ -4,11 +4,16 @@ import android.content.Context;
import android.net.Uri;
import android.util.Log;
+import com.google.android.mms.InvalidHeaderValueException;
+import com.google.android.mms.pdu_alt.AcknowledgeInd;
import com.google.android.mms.pdu_alt.CharacterSets;
import com.google.android.mms.pdu_alt.EncodedStringValue;
import com.google.android.mms.pdu_alt.PduBody;
+import com.google.android.mms.pdu_alt.PduComposer;
+import com.google.android.mms.pdu_alt.PduHeaders;
import com.google.android.mms.pdu_alt.PduPart;
import com.google.android.mms.pdu_alt.RetrieveConf;
+import com.klinker.android.send_message.Utils;
import org.thoughtcrime.securesms.attachments.Attachment;
import org.thoughtcrime.securesms.attachments.UriAttachment;
@@ -28,6 +33,7 @@ import org.thoughtcrime.securesms.mms.PartParser;
import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.providers.SingleUseBlobProvider;
import org.thoughtcrime.securesms.service.KeyCachingService;
+import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
import org.thoughtcrime.securesms.util.Util;
import org.whispersystems.jobqueue.JobParameters;
import org.whispersystems.jobqueue.requirements.NetworkRequirement;
@@ -108,6 +114,13 @@ public class MmsDownloadJob extends MasterSecretJob {
}
storeRetrievedMms(masterSecret, contentLocation, messageId, threadId, retrieveConf, notification.get().getSubscriptionId());
+
+ if(retrieveConf.getTransactionId() != null){
+ /* If Transaction-ID is set, that means MMS proxy-relay requires M-Acknowledge.ind (aka ACK) */
+ AcknowledgeInd acknowledgeInd = new AcknowledgeInd(PduHeaders.CURRENT_MMS_VERSION, retrieveConf.getTransactionId());
+ acknowledgeInd.setFrom(new EncodedStringValue(Utils.getMyPhoneNumber(context)));
+ new CompatMmsConnection(context).send(new PduComposer(context, acknowledgeInd).make(), notification.get().getSubscriptionId());
+ }
} catch (ApnUnavailableException e) {
Log.w(TAG, e);
handleDownloadError(masterSecret, messageId, threadId, MmsDatabase.Status.DOWNLOAD_APN_UNAVAILABLE,
@@ -134,6 +147,12 @@ public class MmsDownloadJob extends MasterSecretJob {
} catch (InvalidMessageException e) {
Log.w(TAG, e);
database.markAsDecryptFailed(messageId, threadId);
+ } catch (InvalidHeaderValueException e) {
+ Log.w(TAG, e);
+ } catch (UndeliverableMessageException e) {
+ handleDownloadError(masterSecret, messageId, threadId,
+ MmsDatabase.Status.DOWNLOAD_SEND_ACK_FAILED,
+ automatic);
}
}
I suggest you submit this as a pull request. That will probably make it easier to review and merge.
@snaggen hopefully, it's done here https://github.com/WhisperSystems/Signal-Android/pull/6886
Updated, we've agreed that it's not AcknowledgeInd but NotifyRespInd that is needed to notify MMSC that fetch was successfull. Updated PR now awaits merging
patch
diff --git a/src/org/thoughtcrime/securesms/database/MmsDatabase.java b/src/org/thoughtcrime/securesms/database/MmsDatabase.java
index 0ae9b62e..f78bc17a 100644
--- a/src/org/thoughtcrime/securesms/database/MmsDatabase.java
+++ b/src/org/thoughtcrime/securesms/database/MmsDatabase.java
@@ -1025,12 +1025,13 @@ public class MmsDatabase extends MessagingDatabase {
}
public static class Status {
- public static final int DOWNLOAD_INITIALIZED = 1;
- public static final int DOWNLOAD_NO_CONNECTIVITY = 2;
- public static final int DOWNLOAD_CONNECTING = 3;
- public static final int DOWNLOAD_SOFT_FAILURE = 4;
- public static final int DOWNLOAD_HARD_FAILURE = 5;
- public static final int DOWNLOAD_APN_UNAVAILABLE = 6;
+ public static final int DOWNLOAD_INITIALIZED = 1;
+ public static final int DOWNLOAD_NO_CONNECTIVITY = 2;
+ public static final int DOWNLOAD_CONNECTING = 3;
+ public static final int DOWNLOAD_SOFT_FAILURE = 4;
+ public static final int DOWNLOAD_HARD_FAILURE = 5;
+ public static final int DOWNLOAD_APN_UNAVAILABLE = 6;
+ public static final int DOWNLOAD_SEND_NOTIFY_RESP_FAILED = 7;
}
public static class MmsNotificationInfo {
diff --git a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
index 01a85e34..59b97ef4 100644
--- a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
+++ b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java
@@ -5,9 +5,13 @@ import android.net.Uri;
import android.support.annotation.Nullable;
import android.util.Log;
+import com.google.android.mms.InvalidHeaderValueException;
import com.google.android.mms.pdu_alt.CharacterSets;
import com.google.android.mms.pdu_alt.EncodedStringValue;
+import com.google.android.mms.pdu_alt.NotifyRespInd;
import com.google.android.mms.pdu_alt.PduBody;
+import com.google.android.mms.pdu_alt.PduComposer;
+import com.google.android.mms.pdu_alt.PduHeaders;
import com.google.android.mms.pdu_alt.PduPart;
import com.google.android.mms.pdu_alt.RetrieveConf;
@@ -30,6 +34,7 @@ import org.thoughtcrime.securesms.mms.PartParser;
import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.providers.SingleUseBlobProvider;
import org.thoughtcrime.securesms.service.KeyCachingService;
+import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.whispersystems.jobqueue.JobParameters;
@@ -121,6 +126,12 @@ public class MmsDownloadJob extends MasterSecretJob {
}
storeRetrievedMms(masterSecret, contentLocation, messageId, threadId, retrieveConf, notification.get().getSubscriptionId(), notification.get().getFrom());
+
+ // see https://android.googlesource.com/platform/packages/apps/Mms/+/master/src/com/android/mms/transaction/NotificationTransaction.java
+ // success status will be sent if this point-in-code is reached without exception
+ NotifyRespInd retrieveResponse = new NotifyRespInd(retrieveConf.getMmsVersion(), transactionId, PduHeaders.STATUS_RETRIEVED);
+ new CompatMmsConnection(context).send(new PduComposer(context, retrieveResponse).make(),
+ notification.get().getSubscriptionId());
} catch (ApnUnavailableException e) {
Log.w(TAG, e);
handleDownloadError(masterSecret, messageId, threadId, MmsDatabase.Status.DOWNLOAD_APN_UNAVAILABLE,
@@ -147,6 +158,12 @@ public class MmsDownloadJob extends MasterSecretJob {
} catch (InvalidMessageException e) {
Log.w(TAG, e);
database.markAsDecryptFailed(messageId, threadId);
+ } catch (InvalidHeaderValueException e) {
+ Log.w(TAG, e);
+ } catch (UndeliverableMessageException e) {
+ Log.w(TAG, e);
+ handleDownloadError(masterSecret, messageId, threadId,
+ MmsDatabase.Status.DOWNLOAD_SEND_NOTIFY_RESP_FAILED, automatic);
}
}
No more news?
I'm hitting the same problem (also Swisscom in Switzerland).
@dynek please push here: https://github.com/signalapp/Signal-Android/pull/6886
moxie has to approve the PR, however it seems to me, that no PR merge was done for a months now, so I don't know, if anything will happen soon
Any update? I have this issue since ever (basically since I Signal started supporting MMS). I'm with German Telekom. Any MMS I get I will get again, the next day, for several days.
Same here. I've reproduced this problem with several phones in Sweden over
many years. I've tried the major operators, Telenor, 3 and Telia.
The problem persists.
Let me know if you require more data for debugging purposes.
Rgds
/PL
On Wed, Feb 21, 2018 at 3:37 PM, Moritz Moeller notifications@github.com
wrote:
Any update? I have this issue since ever (basically since I Signal started
supporting MMS). I'm with German Telekom. Any MMS I get I will get again,
the next day, for several days.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/signalapp/Signal-Android/issues/5177#issuecomment-367345922,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEaFJyiRvT59EeHpHvrmgSOObVpRgZweks5tXCoogaJpZM4HTmzH
.
--
MVH
/PL
Same issue, multiple devices, multiple app versions. Provider T-Mobile Germany
@perlanvin @lfrancke you could confirm that the issue is solved by PR #6886 . That could help the PR getting merged.
GitHub Issue Cleanup:
See #7598 for more information.
Most helpful comment
Hey, this bug affects us too. When Signal user receives MMS from non-Signal sender, "delivery success report" is not being generated and sent to mobile network operator. We've confirmed that with Czech T-Mobile, that they re-deliver the MMS because no successfull delivery report was send by MS (mobile station/phone)
So the solution would be to check the sources for missing or incorrect delivery report generation.
Will do that if I gather some time for it over next week.