Signal-android: Signal does not give any feedback when an SMS cannot be sent on a data-only SIM.

Created on 27 Apr 2018  Â·  6Comments  Â·  Source: signalapp/Signal-Android


Bug description

Signal does not give any feedback when network access is available but SMS cannot be sent (data-only SIM, airplane mode with WiFi, etc.)

Steps to reproduce

  • Install Signal on a phone with a SIM that cannot send text messages, or insert such a SIM into a phone with Signal (:man_shrugging:)
  • Attempt to send an SMS message via Signal

Actual result: Signal marks the SMS message as sent successfully (":heavy_check_mark:")
Expected result: Signal should indicate that the SMS could not be sent.

Device info

Device: Nexus 5 (hammerhead)
Android version: 7.1.2 (LineageOS 14.1)
Signal version: 4.18.3

Link to debug log

<todo>

———

Tested on two different SIMs that are incapable of SMS, in two different countries. AOSP's built-in Messaging app clearly and promptly notifies the user that the SMS couldn't be sent, but Signal claims that the message was sent even though it's actually gone to a black hole.

Per the philosophy that there are no power users, I am reporting this because it is likely to confuse new users. Many users, I suspect, will expect that Signal can send SMS messages via some over-the-top IP-based method (like Google Voice, TextNow, etc.) and will get the wrong impression from attempting to use it to send an SMS from a device where that isn't possible.

Most helpful comment

@dlenski Same. It's possible that they're using a different API, given that they have access to all the hidden/private stuff we don't see. Have you tried the same experiment with non-Google SMS clients like Textra or whatever?

All 6 comments

Thanks for the report, but we can't do anything without a debug log. Please reopen when you have one.

Here's the debug log: https://debuglogs.org/438476ce93766bb084f7fa0da6ce07d5bdc5d4397a58b97ca2a705997524b888

To illustrate this problem (hopefully!), I did the following two things:

  1. First, I attempted to send an SMS to a foreign number (different country code), which immediately fails and visually indicated as such in Signal.
  2. Second, I attempted to send an SMS to a domestic number, which appeared to succeed even though the SIM card cannot send.

In general we don't have a lot of control over this process. We hand something to the OS, and it tells us whether it succeeded or not. There's only one SMS send attempt in this log:

04-26 19:22:17.322 2882 2961 W SmsSendJob: Sending message: 2 04-26 19:22:18.720 2882 2963 W SmsSentJob: Got SMS callback: org.thoughtcrime.securesms.SendReceiveService.SENT_SMS_ACTION , -1

We handed the SMS to the OS, and the OS gave us a callback to say that it was successful.

We handed the SMS to the OS, and the OS gave us a callback to say that it was successful.

Got it, thanks. Now I'm mystified about how the native Messaging app determines that the message hasn't sent.

@dlenski Same. It's possible that they're using a different API, given that they have access to all the hidden/private stuff we don't see. Have you tried the same experiment with non-Google SMS clients like Textra or whatever?

Have you tried the same experiment with non-Google SMS clients like Textra or whatever?

I just tried Textra and it has the exact same behavior as Signal:

  • SMS sent to domestic numbers _appear_ to send correctly, but don't
  • SMS sent to foreign numbers fail immediately

… so as you say, Signal isn't doing anything particularly wrong here. Appears to be an issue with the AOSP Messaging app using some separate API that gives it different feedback from the public API.

Drat.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

McLoo picture McLoo  Â·  3Comments

Wikinaut picture Wikinaut  Â·  3Comments

hiredgunhouse picture hiredgunhouse  Â·  3Comments

FeuRenard picture FeuRenard  Â·  3Comments

5boro picture 5boro  Â·  3Comments