Bug description
If several short voice messages are recorded and sent quickly one after the other (for example, 4 times per 5 seconds), then sometimes the error "Unable to record audio!" appears after a recording. And the recording is lost.
Steps to reproduce
Open Signal
Start a conversation
Send several voice messages (about 5 seconds) quickly one after the other
Actual result: The error "Unable to record audio!" appears and a voice message is lost.
Expected result: The voice message should be sent.
Device info
Device: Wiko Pulp 4G
Android version: stock Android 5.1.1
Signal version: 3.27.1
Debug log
In the log I find the following errors:
W/DecryptingPartInputStream(): javax.crypto.IllegalBlockSizeException: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
W/DecryptingPartInputStream(): at com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
W/DecryptingPartInputStream(): at com.android.org.conscrypt.OpenSSLCipher.doFinalInternal(OpenSSLCipher.java:430)
W/DecryptingPartInputStream(): at com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:490)
W/DecryptingPartInputStream(): at javax.crypto.Cipher.doFinal(Cipher.java:1314)
W/DecryptingPartInputStream(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.readFinal(DecryptingPartInputStream.java:118)
W/DecryptingPartInputStream(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.read(DecryptingPartInputStream.java:93)
W/DecryptingPartInputStream(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.read(DecryptingPartInputStream.java:85)
W/DecryptingPartInputStream(): at org.thoughtcrime.securesms.util.MediaUtil.getMediaSize(MediaUtil.java:123)
W/DecryptingPartInputStream(): at org.thoughtcrime.securesms.audio.AudioRecorder$2.run(AudioRecorder.java:88)
W/DecryptingPartInputStream(): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/DecryptingPartInputStream(): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/DecryptingPartInputStream(): at java.lang.Thread.run(Thread.java:818)
W/AudioRecorder(): java.io.IOException: Illegal block size exception!
W/AudioRecorder(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.readFinal(DecryptingPartInputStream.java:132)
W/AudioRecorder(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.read(DecryptingPartInputStream.java:93)
W/AudioRecorder(): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.read(DecryptingPartInputStream.java:85)
W/AudioRecorder(): at org.thoughtcrime.securesms.util.MediaUtil.getMediaSize(MediaUtil.java:123)
W/AudioRecorder(): at org.thoughtcrime.securesms.audio.AudioRecorder$2.run(AudioRecorder.java:88)
W/AudioRecorder(): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/AudioRecorder(): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/AudioRecorder(): at java.lang.Thread.run(Thread.java:818)
please (always) post the entire debug log, thanks!
Sorry, here ist the complete log.
log.txt
The same problem here with a only difference, it rarely works no matter if I want to send many voice messages behind each other or whether a long time passes.
I use a ZTE Blade l3, but with a Samsung Galaxy J5 exactly the same.
(but obviously nothing in my log file)
This happened to me today. I was in a conversation via desktop signal. I had sent a couple images via drag and drop. I wanted to send some voice, so I picked up my phone and recorded a couple minutes or so. I got the unable to record audio message. Subsequent audio messages were sent just fine.
gist.github.com/anonymous/b409b72cca412f00a2f3ce2721c7b15f
I've had this message before. Most often audio messages are recorded and sent properly. Every once in a while I get this error instead.
I just want to add that whenever I've had this error, simply re-recording the message has always worked.
Same problem on Galaxy S3 and LG G3.
Android version: 5.0
Signal version: 4.4.0
Unable to record and play Audio:
Phone: Nexus 6P
Version: Noise 4.5.3 (websocket)
I have this problem for as long as the feature was implemented. When i have a conversation with a friend only with voice notes. It just breaks after several attemps.
Here is the log: https://gist.github.com/anonymous/c681f5f7978a01b56832c2baea93b729
Nexus 6P
Has happened for a couple months now on and off. Like 10% of the time or so... Kinda frustrating especially after recording for 30 seconds or so. This is the only problem I've had so far. I'll try and grab the logs next time it happens. Is there anything private in them I should be worried about posting?
Its happening more and more to me. Only 30% record successfully. Basically the voice message feature is unusable. https://gist.github.com/anonymous/e0b1f507162a5fbb4f013ef72f12ee8b
Device : OnePlus ONEPLUS A3003 (OnePlus3)
Android : 7.1.1
Signal 4.6.1
https://gist.github.com/160d2793b16097570d03d550f25f1429
User states that closing all other apps in the background resolved the sending issue.
This one is of a friend: https://gist.github.com/82acf796ffa474869f680b99e79ca61d (directly submitted after failure). Don't know what a device he has.
This is from me (directly taken after failure) https://gist.github.com/64e5b1679f0d0b76460cea15355e9cd5
Device: S4 Mini (samsung GT-I9195)
Signal: 4.6.1
Android: Cyageonmod 12.1
Maybe that's the interesting part?
W/AudioRecorder(23580): java.io.IOException: Bad MAC
W/AudioRecorder(23580): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.verifyMac(DecryptingPartInputStream.java:93)
W/AudioRecorder(23580): at org.thoughtcrime.securesms.crypto.DecryptingPartInputStream.createFor(DecryptingPartInputStream.java:55)
W/AudioRecorder(23580): at org.thoughtcrime.securesms.providers.PersistentBlobProvider.getStream(PersistentBlobProvider.java:150)
W/AudioRecorder(23580): at org.thoughtcrime.securesms.mms.PartAuthority.getAttachmentStream(PartAuthority.java:52)
W/AudioRecorder(23580): at org.thoughtcrime.securesms.util.MediaUtil.getMediaSize(MediaUtil.java:130)
W/AudioRecorder(23580): at org.thoughtcrime.securesms.audio.AudioRecorder$2.run(AudioRecorder.java:86)
W/AudioRecorder(23580): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/AudioRecorder(23580): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/AudioRecorder(23580): at java.lang.Thread.run(Thread.java:818)
Device info: Huawei Nexus 6P
Android version: 7.1.2
Signal version: 4.8.1
Debug log: https://gist.github.com/37b5107295682366fb2c50cb0b209a40
I don't have the debug log but this randomly happens on:
Please fix that. Also, this specific architecture is probably wrong. You can't let a person think he is recording something and only we he finished, show him the error. It is extremely frustrating, especially for audio-focused chats.
Thanks!
If have the feeling, this is getting more and more.
It is super annoying, I also never had a voicemessage longer than 90 seconds, because every longer message I tried, failed...
Is there anyone investigating this bug?
I use a Oneplus2, with LineAge OS, without Google services installed.
This is the only and most enraging bug I have ever experienced with Signal. Its been almost a year... If this isnt top priority I would suggest you make it so... Thanks.
@PCSmith Please read the contributing guidelines before posting here again. Comments like these only make less time for work to be done.
Oh dont get butt-hurt over pain-point and prioritization feedback from a huge fan of the project. <3
GitHub Issue Cleanup:
See #7598 for more information.