bug: signalc receiver decryption errors in loadtest
as of sometime last week we started observing an error in which receiver_signalc
always throws decryption errors on every message it receives from the sender_signalc
. we do not observe such errors when using signalc in dev to talk to normal phones using the normal signal server.
things that are different:
- (1) our phones are not running signalc (unlike loadtest receivers)
- (2) signalc is using real signal server to talk to our phones (unlike fake signal server in loadtests)
error:
0000000000) to +10000000007
2021-05-10 20:30:07.760 [i.s.s.l.SignalReceiver] DEBUG | Got PREKEY_BUNDLE from Optional.of(+20000000000) to +10000000002
2021-05-10 20:30:07.760 [i.s.s.l.SignalReceiver] DEBUG | Got PREKEY_BUNDLE from Optional.of(+20000000000) to +10000000002
# snip #
2021-05-10 20:30:08.001 [i.s.s.l.SignalReceiver] ERROR | Decryption Error:
org.signal.libsignal.metadata.ProtocolInvalidMessageException: org.whispersystems.libsignal.InvalidMessageException: Message from +20000000000:1 failed to decrypt; sender ratchet public key 47ef9fee16172c744c2da928c41e39d70b8a6496325a34c9b25dbb5f9eee6b40 message counter 6
Candidate session 0 failed with 'invalid ciphertext message', had 0 receiver chains
at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.decrypt(SignalServiceCipher.java:210)
at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.decrypt(SignalServiceCipher.java:138)
at info.signalboost.signalc.logic.SignalReceiver$relay$2.invokeSuspend(SignalReceiver.kt:170)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.whispersystems.libsignal.InvalidMessageException: Message from +20000000000:1 failed to decrypt; sender ratchet public key 47ef9fee16172c744c2da928c41e39d70b8a6496325a34c9b25dbb5f9eee6b40 message counter 6
Candidate session 0 failed with 'invalid ciphertext message', had 0 receiver chains
at org.signal.client.internal.Native.SessionCipher_DecryptPreKeySignalMessage(Native Method)
at org.whispersystems.libsignal.SessionCipher.decrypt(SessionCipher.java:100)
at org.whispersystems.signalservice.api.crypto.SignalServiceCipher.decrypt(SignalServiceCipher.java:178)
... 7 more
Edited by aguestuser