Signal-android: Crash after update to 4.38.0

Created on 15 Apr 2019  Â·  14Comments  Â·  Source: signalapp/Signal-Android


Bug description

Since the last beta 4.38.0 version, I received as an update today, I'm not able to open the Signal app anymore. If I try to open it, it either crashed immediately or it shows a blank white window and crashes after a few seconds. Deleting the cache does not help.

Steps to reproduce

  • Update Signal app to 4.38.0
  • Open Signal app

Actual result: Signal app crashes.

Expected result: Signal app opens normally

Device info

Device: OpenPlus 6T
Android version: 9 (security patch January)
Signal version: 4.38.0

Link to debug log

Unfortunately I'm not able to submit a debug log because the app crashes immediately.

Most helpful comment

@hupsing You can't downgrade Signal releases, but I'm releasing a 4.38.1 with the fix now. Should be available on the Play Store within an hour or so.

All 14 comments

Hey, sorry about that. I've seen the crash. Basically you'll see this if you had a pending job to send a read receipt at the time of upgrade. I'm fixing this now and will get an update out soon.

Same here. Hope to get a fix soon. Thanks for your prompt action, Greyson!
Would it be possible to install the stable release 4.37.2 from signal.org to fix this...?

@hupsing You can't downgrade Signal releases, but I'm releasing a 4.38.1 with the fix now. Should be available on the Play Store within an hour or so.

Hi, auto-updated to 4.38.0 and started getting "signal keeps closing" messages (which disappear after ~0.2 seconds, except sometimes stay visible).

Updated to 4.38.1, did not fix it. Can not open the app at all. Notifications do appear (with random ~30 min delay, as before 4.38).

I did have pending message to user who has read receipts disabled 😅

[EDIT: lost track of time, message was delivered hours before crashing began 😵]

signal-read-receipt-crash-jussipekka

Google Pixel 1, Android 9 April.

@sampumon I don't see this crash occurring on 4.38.1 You must be experiencing a different issue. Is it possible for you to obtain logs using adb logcat?

I can confirm 4.38.1 crashing when trying to restore a backup from 4.38.0
Edit: Can grab a log if the issue is related to topic?

Using adb resets my nfc payment app… here goes 🤖

[edit: did not reset as I killed it's background service before enabling adb!!]

This is the first hunk. Based on timestamps, that pending message was actually delivered hours before updates and crashing started. At time of first crash, I had no Signal activity. Seems that I lost track of time 😵

04-16 12:52:15.063 22653 22677 E AndroidRuntime: FATAL EXCEPTION: JobManager
04-16 12:52:15.063 22653 22677 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 22653
04-16 12:52:15.063 22653 22677 E AndroidRuntime: java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.os.Parcel.createException(Parcel.java:1958)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1918)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.os.Parcel.readException(Parcel.java:1868)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.app.job.IJobScheduler$Stub$Proxy.schedule(IJobScheduler.java:184)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobSchedulerScheduler.schedule(JobSchedulerScheduler.java:48)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.CompositeScheduler.schedule(CompositeScheduler.java:19)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.scheduleJobs(JobController.java:298)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.submitNewJobChain(JobController.java:94)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobManager.lambda$enqueueChain$3(JobManager.java:148)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.-$$Lambda$JobManager$V3aJCKU4Ub_p1PTzs9xnp56jvkY.run(Unknown Source:4)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:764)
04-16 12:52:15.063 22653 22677 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at com.android.server.job.JobSchedulerService.scheduleAsPackage(JobSchedulerService.java:871)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at com.android.server.job.JobSchedulerService$JobSchedulerStub.schedule(JobSchedulerService.java:2568)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.app.job.IJobScheduler$Stub.onTransact(IJobScheduler.java:60)
04-16 12:52:15.063 22653 22677 E AndroidRuntime:    at android.os.Binder.execTransact(Binder.java:731)
04-16 12:52:15.063 22653 22677 E AndroidRuntime: 
04-16 12:52:15.318 22653 22683 E AndroidRuntime: FATAL EXCEPTION: JobRunner-1
04-16 12:52:15.318 22653 22683 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 22653
04-16 12:52:15.318 22653 22683 E AndroidRuntime: java.lang.IllegalStateException: Tried to retrieve a value with key 'message_ids', but it wasn't present.
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.throwIfAbsent(Data.java:207)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.getLongArray(Data.java:125)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:113)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:108)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobInstantiator.instantiate(JobInstantiator.java:19)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.createJob(JobController.java:324)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.getNextEligibleJobForExecution(JobController.java:314)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.pullNextEligibleJobForExecution(JobController.java:167)
04-16 12:52:15.318 22653 22683 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:36)
04-16 12:52:15.362 22653 22685 E AndroidRuntime: FATAL EXCEPTION: JobRunner-3
04-16 12:52:15.362 22653 22685 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 22653
04-16 12:52:15.362 22653 22685 E AndroidRuntime: java.lang.IllegalStateException: Tried to retrieve a value with key 'message_ids', but it wasn't present.
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.throwIfAbsent(Data.java:207)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.getLongArray(Data.java:125)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:113)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:108)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobInstantiator.instantiate(JobInstantiator.java:19)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.createJob(JobController.java:324)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.getNextEligibleJobForExecution(JobController.java:314)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.pullNextEligibleJobForExecution(JobController.java:167)
04-16 12:52:15.362 22653 22685 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:36)
04-16 12:52:15.386 22653 22684 E AndroidRuntime: FATAL EXCEPTION: JobRunner-2
04-16 12:52:15.386 22653 22684 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 22653
04-16 12:52:15.386 22653 22684 E AndroidRuntime: java.lang.IllegalStateException: Tried to retrieve a value with key 'message_ids', but it wasn't present.
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.throwIfAbsent(Data.java:207)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.Data.getLongArray(Data.java:125)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:113)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobs.SendReadReceiptJob$Factory.create(SendReadReceiptJob.java:108)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobInstantiator.instantiate(JobInstantiator.java:19)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.createJob(JobController.java:324)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.getNextEligibleJobForExecution(JobController.java:314)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobController.pullNextEligibleJobForExecution(JobController.java:167)
04-16 12:52:15.386 22653 22684 E AndroidRuntime:    at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:36)
04-16 12:52:15.538   901 22692 I chatty  : uid=1000 system_server expire 1 line
04-16 12:52:19.266   901  1726 I chatty  : uid=1000(system) Binder:901_7 expire 6 lines

… and then it repeats. Others are the same, except towards the end there are no JobRunner hunks, just the fatal JobManager.

Good luck 🥰

@sampumon

java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs

Ahh there it is. Ok, so I did see this crash on the Play Console, but it was only affecting Xiaomi devices, so I didn't think it was happening to your Pixel. That's good though, because I'm about to build a release with the fix :) Thanks!

In general, thanks to all the beta testers. Building the new JobManager was a rather massive infrastructure overhaul, so I appreciate you all helping test this and smoothing out the bumps.

@greyson-signal, I did send feedback with system logs from my Pixel, did you see that? 😊

@Cre0 4.38.2 should fix the crash and allow you to restore your backup.
@sampumon The Play Console has some delay -- it might come in later :) Either way, hopefully your problem is resolved in 4.38.2.

…Interestingly, my Signal fixed itself before 4.38.2 update 🤔 apparently there's finally room in my job queue 😎

Same problem is happening on 4.40.4
Crashing every time trying to open Signal, anyone else having this issue!?

Problem with 4.43 as well... anything I can do to identify this problem? I'm a beta tester

anything I can do to identify this problem?

@hertomas ...you should see, assuming you are comfy doing so, if you can attach the handset (via usb-cable typically) to a laptop you TRUST which is running adb, one of the tools from the Android SDK. These raw adb logcat datafiles ARE NOT scrubbed of details like phone-nums and such, so please do not put them on a system you are not sure is trustworthy (including all apps and sysadmins thereof), and don't upload to github either without trimming out the sensitive info.

Signal Foundation folks do get crash-reporting info via playStore, but if you are using the https://signal.org/android/apk they might not? You can email [email protected] for official instructions on where to submit your raw logs, or you can ask for unofficial assistance over in https://community.signalUsers.org from fellow enthusiasts.

Crashing every time trying to open Signal

This is probably not the same root-cause as the other stuff mentioned in this (now-closed) bug-report. But to be able to tell, we need to get the crash-details from a log, and because signalapp will not open, that means you need to be (or you need to befriend somebody you trust who is) somewhat tech-savvy when it comes to things like adb, logcat, etc.

If everything above here sounds like gibberish-talk, no worries -- if you will please open a new thread in signalUsers forum, I can try to help you there, you should be able to login with your github credentials (or register with a protonmail/tutanota/similar webmail address)

I'm a beta tester

There are also some beta-feedback threads in the forum (the 4.43.x thread is active now)

Was this page helpful?
0 / 5 - 0 ratings