A few days ago, I updated to the most recent version of Signal. Now, whenever I try to open Signal on my phone, it immediately crashes with a "Unfortunately, Signal has stopped" message. Signal still works on my laptop.
Actual result:
"Unfortunately, Signal has stopped" message and Signal does not open
Expected result:
Signal starts and opens and can be used

Device: Galaxy S3
Android version: 4.4.2
Signal version: 4.26.2
I read through https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports and am still not certain how to get a bug report when the app immediately crashes. I would love to get a stack trace, but need more guidance as to how to do so.
I was able to filter the crash reports on the Google Play Console, and I found one that matched your device and Android version. Looks like this is _likely_ the crash:
java.lang.ArrayIndexOutOfBoundsException:
at android.text.StaticLayout.calculateEllipsis (StaticLayout.java:917)
at android.text.StaticLayout.out (StaticLayout.java:825)
at android.text.StaticLayout.generate (StaticLayout.java:494)
at android.text.StaticLayout.<init> (StaticLayout.java:151)
at android.widget.TextView.makeSingleLayout (TextView.java:7627)
at android.widget.TextView.makeNewLayout (TextView.java:7418)
at android.widget.TextView.onMeasure (TextView.java:7832)
at android.view.View.measure (View.java:17495)
at android.widget.RelativeLayout.measureChildHorizontal (RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure (RelativeLayout.java:455)
at android.view.View.measure (View.java:17495)
at android.widget.RelativeLayout.measureChildHorizontal (RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure (RelativeLayout.java:455)
at android.view.View.measure (View.java:17495)
at android.support.v7.widget.RecyclerView$LayoutManager.measureChildWithMargins (RecyclerView.java:8791)
at android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1584)
at android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1518)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:610)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3719)
at android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:3436)
at android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:3988)
at android.view.View.layout (View.java:15762)
at android.view.ViewGroup.layout (ViewGroup.java:4867)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1677)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1531)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1440)
at android.view.View.layout (View.java:15762)
Unfortunately this is a crash in one of Android's default views, not our code. I'll try to look into it, though.
If you'd like to confirm this by capturing a log yourself, you can install ADB (one guide here, but the steps will vary based on what desktop OS you're running), and then running the adb logcat command.
Thanks!
I am having the same issue.
Bug description
I updated my OnePlus 6 to Android 9 and when I click on a signal conversation, the app crashes.
Steps to reproduce
-Sign in to Signal
-Click on conversation
-App crashes
Actual result: I can use the Chrome plug-in and the conversation actually updates on the mobile app but I can't open it. I archived the conversation and restored it and that did not work. I uninstalled and reinstalled and that did not work. I am stuck to using Chrome plug-in only at the moment.
Expected result: Correct behavior would be that the conversation opens and I can send are receive messages. Unable to open a conversation without the app crashing.
Device info
Device: OnePlus 6
Android version: Android 9 / Oxygen 9.0
Signal version: 4.62.2
Link to debug log
https://debuglogs.org/16f2229cf9e1f651d2712815d65c4201bb8e5256c0430c7d3b72ad8a6c3d8029
@socalmoney It looks like you have a different issue.
09-28 11:26:15.415 19871 19871 E AndroidRuntime: FATAL EXCEPTION: main
09-28 11:26:15.415 19871 19871 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 19871
09-28 11:26:15.415 19871 19871 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.thoughtcrime.securesms/org.thoughtcrime.securesms.ConversationActivity}: java.lang.SecurityException
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3037)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3172)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6863)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: Caused by: java.lang.SecurityException
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:1942)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1910)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1860)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at com.android.internal.telephony.ISms$Stub$Proxy.isImsSmsSupportedForSubscriber(ISms.java:1422)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.telephony.SmsManager.isImsSmsSupported(SmsManager.java:1410)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.telephony.SmsMessage.useCdmaFormatForMoSms(SmsMessage.java:841)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.telephony.SmsMessage.useCdmaFormatForMoSms(SmsMessage.java:827)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.telephony.SmsMessage.calculateLength(SmsMessage.java:349)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.telephony.SmsMessage.calculateLength(SmsMessage.java:471)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.util.SmsCharacterCalculator.calculateCharacters(SmsCharacterCalculator.java:34)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.TransportOption.calculateCharacters(TransportOption.java:70)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity.calculateCharactersRemaining(ConversationActivity.java:1662)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity.lambda$initializeViews$9$ConversationActivity(ConversationActivity.java:1370)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity$$Lambda$9.onChange(Unknown Source:2)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.TransportOptions.notifyTransportChangeListeners(TransportOptions.java:178)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.TransportOptions.reset(TransportOptions.java:52)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.components.SendButton.resetAvailableTransports(SendButton.java:75)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity.handleSecurityChange(ConversationActivity.java:1048)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity.initializeSecurity(ConversationActivity.java:1166)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.ConversationActivity.onCreate(ConversationActivity.java:302)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity.onCreate(PassphraseRequiredActionBarActivity.java:52)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7149)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7140)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1288)
09-28 11:26:15.415 19871 19871 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3017)
Not sure exactly what's going on here, but did you revoke the phone permission? Can you check your system settings for Signal and see if the Phone permission is missing? If so, does re-enabling it fix this problem? Check any missing permissions at all, really.
Note that you should be able to revoke permissions and we shouldn't crash (if that is what's happening, it's our bug), just trying to see if that's what the issue is.
Phone permission was the culprit. Thanks so much.
@socalmoney Glad to hear that fixed it! Still weird, because I can't repro on my other devices. I wonder if this is OxygenOS specific. I'll look into it more, thanks!
I just had an update pushed via Google Play to version 4.27.2 and Signal crashed upon entering conversations. It will also eventually crash after sitting in the Settings screen (to try and grab device info) for too long also.
Device info
Device: Xiaomi Redmi Note 4
Android version: Android 8.10 / LineageOS 15.1
Signal version: 4.27.2
https://debuglogs.org/cbd7d4dd82c6ba3d68f63304e483e9c40338d878c0d04be5230ab7c2261cfcd8
@h4waii Your crash is different:
10-02 09:22:10.649 4502 4820 E AndroidRuntime: java.lang.IllegalStateException: Missing key: profile_avatar
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at org.thoughtcrime.securesms.jobmanager.SafeData.getString(SafeData.java:47)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob.initialize(RetrieveProfileAvatarJob.java:62)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at org.thoughtcrime.securesms.jobmanager.Job.doWork(Job.java:59)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at androidx.work.Worker$1.run(Worker.java:95)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
10-02 09:22:10.649 4502 4820 E AndroidRuntime: at java.lang.Thread.run(Thread.java:764)
Fixed in cfa13867e. Thanks!
@greyson-signal @socalmoney I just had the exact same issue with Signal after updating my OnePlus 5T to Android 9. Manually adding the phone permission also fixed the issue, but I'm sure others will run into the same issue and have no idea how how to fix it.
Same issue here with my Oneplus 6 running Android 9 and Signal version 4.32.8
When I disable phone permission, it crashes each time I open a chat window.
But this only happens when I'm on a Wifi connection. When I turn off Wifi and use mobile data, I can open all conversations again, even with phone permission disabled.
Device: Oneplus 6 (A6003)
Android version: 9.0 (OxygenOS 9.0.3 = Stock ROM without Root)
Signal version: 4.32.8
https://debuglogs.org/4b6dd1385b7b45862698a08d37e9da2fe942f0016c9d0d6f7e822bbdecc218b6
@alexblanck It worked perfectly for me. After giving the permissions. thanks for the inputs.
@socalmoney Glad to hear that fixed it! Still weird, because I can't repro on my other devices.
I was also able to reproduce the issue on a OnePlus 6T. When I tap on a conversation list when the phone permission is revoked, the app crashes.
Link to debug log: https://debuglogs.org/1ebdf6a8666447ba6b8a8790311325535628b0655f6808b52a4c1f6fb9202718
If you enable all the permissions to that app. That will work. Might be issue with signal app. It happened to me long back. once I enabled the permissions. It started working without any issues.
Yeah, I already know that it works when the permission is enabled. Just wanted to give a data point about the existence of this bug. Sorry for not being clear about that.
BTW, the signal version in which I tested is 4.43.4.
Phone permission was the culprit. Thanks so much.
FWIW this was my issue as well. Signal kept crashing when trying to send a message on my new OnePlus 7 Pro, running OxygenOS 9.5.13.GM21AA and Signal version 4.49.18. Wish there was a way the app could throw a meaningful error message rather than crashing when the phone permission is not enabled.
Most helpful comment
@h4waii Your crash is different:
Fixed in cfa13867e. Thanks!