signalapp / signalapp/Signal-Android

Messages not being delivered

Open
#14,166 39 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
29.4k
Forks
6.9k
PR merge metrics
No merged PRs in 30d

Description

Guidelines
  • I have searched searched open and closed issues for duplicates
  • I am submitting a bug report for existing functionality that does not work as intended
  • This isn't a feature request or a discussion topic
Bug description

Hi there!

Thanks for putting in the work to get Signal to where it is today - it is my go-to messaging app.

Key points on an issue that I have been facing:

  • In the last couple of days, I have found that messages aren't being delivered or received immediately to/from one of my friends.
  • I use Android/Desktop, and they use Android.
  • They have reinstalled the app.
  • The behaviour is normal for messages being sent to other people.
  • Behaviour is the same on both Wifi/cellular.
  • We have both followed common debugging steps and ensured all permissions are enabled and background optimisation is off.
  • Below is a debug log retrieved from my Desktop instance being sent to an Android instance that I applied a diff to before and after sending a new message that wasn't delivered
  • There are also full debug logs for all 3 devices at the link below

Many thanks for any help in advance!
Cheers

Debug log

> INFO  2025-05-26T22:38:35.684Z WebSocketResources.KeepAlive(unauthenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:38:38.109Z NotificationService: clearing notification and requesting an update
> INFO  2025-05-26T22:38:38.110Z markConversationRead([REDACTED]24f ([REDACTED]2e4)) {"newestSentAt":1748298259971,"newestUnreadAt":1748244856930,"unreadMessages":0,"unreadReactions":0}
> INFO  2025-05-26T22:38:39.109Z NotificationService not updating notifications. Notifications are enabled; app is focused; there is no notification data
> INFO  2025-05-26T22:38:40.644Z preloadNewestMessages/[REDACTED]24f ([REDACTED]2e4): starting
> INFO  2025-05-26T22:38:40.649Z preloadNewestMessages/[REDACTED]24f ([REDACTED]2e4): preloaded 30 messages, latest timestamp=1748298259971
> INFO  2025-05-26T22:38:41.415Z WebSocketResources.KeepAlive(authenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:38:41.661Z sendTypingMessage([REDACTED]24f ([REDACTED]2e4)): sending true
> INFO  2025-05-26T22:38:41.661Z Sender certificate service found a valid no-E164 certificate in storage; skipping fetch
> INFO  2025-05-26T22:38:41.662Z commitZoneChanges(storeSession): pending sender keys 0, pending sessions 1, pending unprocessed 0
> INFO  2025-05-26T22:38:41.682Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]24f?story=false (unauth)
> INFO  2025-05-26T22:38:41.915Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]24f?story=false (unauth) 200 Success
> INFO  2025-05-26T22:38:41.915Z conversation.queueJob([REDACTED]24f ([REDACTED]2e4), sendTypingMessage): took 254ms
> INFO  2025-05-26T22:38:42.611Z CompositionInput: Submitting message 1748299122611 with 0 ranges
> INFO  2025-05-26T22:38:42.615Z withPreSendChecks: Send pre-checks took 3ms
> INFO  2025-05-26T22:38:42.615Z Sending message to conversation [REDACTED]24f ([REDACTED]2e4) with timestamp 1748299122611
> WARN  2025-05-26T22:38:42.615Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:42.615Z enableProfileSharing: [REDACTED]24f ([REDACTED]2e4) reason=mandatoryProfileSharing storage? false
> INFO  2025-05-26T22:38:42.615Z enqueueMessageForSend: saving message [REDACTED]c4e and job [REDACTED]8fa
> INFO  2025-05-26T22:38:42.618Z JobQueueDatabaseStore adding job [REDACTED]8fa to queue "conversation"
> INFO  2025-05-26T22:38:42.618Z conversation job queue: added new job [REDACTED]8fa
> INFO  2025-05-26T22:38:42.619Z conversation job queue: enqueuing job [REDACTED]8fa
> INFO  2025-05-26T22:38:42.619Z conversation job queue: running job [REDACTED]8fa, attempt 1 of 110
> INFO  2025-05-26T22:38:42.619Z conversation job queue, job ID [REDACTED]8fa, attempt 1: calculating timeRemaining and shouldContinue...
> INFO  2025-05-26T22:38:42.619Z Our profile key service: kicking off a new fetch
> INFO  2025-05-26T22:38:42.619Z Our profile key service: waiting for 0 promises before fetching
> INFO  2025-05-26T22:38:42.621Z beforeMessageSend([REDACTED]24f ([REDACTED]2e4)): clearDraft(true) addMessage(true)
> WARN  2025-05-26T22:38:42.652Z restoreContact([REDACTED]24f ([REDACTED]2e4)) storage? false: not removed
> INFO  2025-05-26T22:38:42.652Z Our profile key service: fetching profile key from storage
> INFO  2025-05-26T22:38:42.653Z ConversationModel([REDACTED]24f ([REDACTED]2e4).sendMessage(1748299122611): render save took 35ms
> INFO  2025-05-26T22:38:42.659Z conversation job queue, job ID [REDACTED]8fa, attempt 1: Sending normal message; editedMessageTimestamp=undefined, storyMessage=false
> INFO  2025-05-26T22:38:42.659Z Sender certificate service found a valid no-E164 certificate in storage; skipping fetch
> INFO  2025-05-26T22:38:42.659Z conversation job queue, job ID [REDACTED]8fa, attempt 1: sending direct message
> INFO  2025-05-26T22:38:42.659Z Sending a message with 0 mentions, 0 placeholders, and 0 other ranges
> INFO  2025-05-26T22:38:42.661Z commitZoneChanges(storeSession): pending sender keys 0, pending sessions 1, pending unprocessed 0
> INFO  2025-05-26T22:38:42.662Z markConversationRead([REDACTED]24f ([REDACTED]2e4)) {"newestSentAt":1748299122611,"newestUnreadAt":1748244856960,"unreadMessages":0,"unreadReactions":0}
> INFO  2025-05-26T22:38:42.663Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]24f?story=false (unauth)
> WARN  2025-05-26T22:38:42.860Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:42.861Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:42.864Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:42.864Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:42.889Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]24f?story=false (unauth) 200 Success
> WARN  2025-05-26T22:38:42.893Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:42.893Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:42.896Z commitZoneChanges(storeSession): pending sender keys 0, pending sessions 1, pending unprocessed 0
> INFO  2025-05-26T22:38:42.896Z commitZoneChanges(storeSession): pending sender keys 0, pending sessions 1, pending unprocessed 0
> INFO  2025-05-26T22:38:42.898Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]fae?story=false
> INFO  2025-05-26T22:38:43.065Z Message.tsx: Rendered 'send complete' for message 1748299122611; took 454ms
> WARN  2025-05-26T22:38:43.096Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.096Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.099Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.099Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:43.131Z PUT (WS) https://chat.signal.org/v1/messages/[REDACTED]fae?story=false 200 Success
> WARN  2025-05-26T22:38:43.132Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.132Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:43.135Z conversation job queue: job [REDACTED]8fa succeeded on attempt 1
> WARN  2025-05-26T22:38:43.336Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.336Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.338Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> WARN  2025-05-26T22:38:43.338Z lookupOrCreate: Called with neither e164 nor serviceId! reason: MessageModel.getSenderIdentifier(1748299122611)
> INFO  2025-05-26T22:38:44.136Z checkExpiringMessages: checking for expiring messages
> INFO  2025-05-26T22:38:44.136Z checkExpiringMessages: next message expires 2025-05-27T03:54:15.326Z; waiting 18931190 ms before clearing
> INFO  2025-05-26T22:38:54.385Z got fast theme-setting value system
> INFO  2025-05-26T22:38:54.431Z got fast theme-setting value system
> INFO  2025-05-26T22:39:03.353Z Debug log upload starting...
> INFO  2025-05-26T22:39:04.553Z Debug log upload complete.
> INFO  2025-05-26T22:39:07.200Z SocketManager: shutting down unauthenticated socket after timeout
> INFO  2025-05-26T22:39:07.200Z WebSocketResource(unauthenticated).shutdown: no active requests, closing
> INFO  2025-05-26T22:39:07.200Z WebSocketResource(unauthenticated).close(3000)
> INFO  2025-05-26T22:39:07.201Z SocketManager: connecting unauthenticated socket
> INFO  2025-05-26T22:39:07.201Z SocketManager: connecting unauthenticated socket, transport option [original]
> WARN  2025-05-26T22:39:07.204Z WebSocketResource(unauthenticated): Socket closed
> INFO  2025-05-26T22:39:07.666Z createHTTPSAgent.createConnection(chat.signal.org): connected to IPv4 addr after 458ms (attempts v4=1 v6=0)
> INFO  2025-05-26T22:39:07.892Z WebSocketResource(unauthenticated) connected in 690.7ms
> INFO  2025-05-26T22:39:07.892Z SocketManager: connected unauthenticated socket (localPort: 53316)
> INFO  2025-05-26T22:39:10.424Z NotificationService: clearing notification and requesting an update
> INFO  2025-05-26T22:39:10.426Z markConversationRead([REDACTED]24f ([REDACTED]2e4)) {"newestSentAt":1748299122611,"newestUnreadAt":1748244856960,"unreadMessages":0,"unreadReactions":0}
> INFO  2025-05-26T22:39:11.424Z NotificationService not updating notifications. Notifications are enabled; app is not focused; there is no notification data
> INFO  2025-05-26T22:39:13.131Z WebSocketResources.KeepAlive(authenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:39:37.901Z WebSocketResources.KeepAlive(unauthenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:39:40.690Z MessageReceiver: got request /api/v1/message
> INFO  2025-05-26T22:39:40.766Z MessageReceiver.decryptAndCacheBatch 1
> INFO  2025-05-26T22:39:40.766Z SignalProtocolStore.enterZone(decryptAndCacheBatch:MessageReceiver)
> INFO  2025-05-26T22:39:40.766Z queueing envelope > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532)
> INFO  2025-05-26T22:39:40.766Z MessageReceiver.unsealEnvelope(> [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532)): unidentified message
> INFO  2025-05-26T22:39:40.766Z @signalapp/libsignal-client deserialized UnidentifiedSenderMessageContent from [REDACTED]24f.1 with type Whisper libsignal_protocol::sealed_sender rust/protocol/src/sealed_sender.rs:442
> INFO  2025-05-26T22:39:40.767Z MessageReceiver.decryptEnvelope([REDACTED]24f.1 > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532))
> INFO  2025-05-26T22:39:40.767Z decrypt/[REDACTED]24f.1 > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532): unidentified message
> INFO  2025-05-26T22:39:40.767Z MessageReceiver.decryptSealedSender([REDACTED]24f.1 > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532)): unidentified message/passing to sealedSenderDecryptMessage
> INFO  2025-05-26T22:39:40.767Z @signalapp/libsignal-client deserialized UnidentifiedSenderMessageContent from [REDACTED]24f.1 with type Whisper libsignal_protocol::sealed_sender rust/protocol/src/sealed_sender.rs:442
> INFO  2025-05-26T22:39:40.767Z @signalapp/libsignal-client decrypted Whisper message from [REDACTED]24f.1 with current session state (base key [REDACTED]053) libsignal_protocol::session_cipher /home/libsignal/src/rust/protocol/src/session_cipher.rs:455
> INFO  2025-05-26T22:39:40.768Z MessageReceiver.decryptAndCacheBatch storing 1 decrypted envelopes, keeping 0 failed envelopes.
> INFO  2025-05-26T22:39:40.768Z commitZoneChanges(MessageReceiver): pending sender keys 0, pending sessions 1, pending unprocessed 1
> INFO  2025-05-26T22:39:40.769Z SignalProtocolStore.leaveZone(decryptAndCacheBatch)
> INFO  2025-05-26T22:39:40.769Z MessageReceiver.decryptAndCacheBatch acknowledging receipt
> INFO  2025-05-26T22:39:40.770Z queueing decrypted envelope [REDACTED]24f.1 > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532)
> INFO  2025-05-26T22:39:40.770Z MessageReceiver.handleDataMessage/[REDACTED]24f.1 > [REDACTED]fae 1748298172255 (01970ec06a93774b92ac166956fc9532)
> INFO  2025-05-26T22:39:40.770Z handleDataMessage/[REDACTED]24f ([REDACTED]2e4) [REDACTED]24f.1 1748298172255: starting processing in queue
> INFO  2025-05-26T22:39:40.770Z handleDataMessage/[REDACTED]24f ([REDACTED]2e4) [REDACTED]24f.1 1748298172255: cache hit [REDACTED]2e4.1-1748298172255
> WARN  2025-05-26T22:39:40.770Z handleDataMessage/[REDACTED]24f ([REDACTED]2e4) [REDACTED]24f.1 1748298172255: Received duplicate message [REDACTED]24f.1 1748298172255
> INFO  2025-05-26T22:39:40.770Z MessageReceiver.decryptAndCacheBatch fully processed
> INFO  2025-05-26T22:39:43.364Z WebSocketResources.KeepAlive(authenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:40:08.151Z WebSocketResources.KeepAlive(unauthenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:40:13.598Z WebSocketResources.KeepAlive(authenticated).send: Sending a keepalive message
> INFO  2025-05-26T22:40:15.550Z NotificationService: clearing notification and requesting an update
> INFO  2025-05-26T22:40:15.554Z markConversationRead([REDACTED]24f ([REDACTED]2e4)) {"newestSentAt":1748299122611,"newestUnreadAt":1748244856960,"unreadMessages":0,"unreadReactions":0}
> INFO  2025-05-26T22:40:16.292Z got fast theme-setting value system
> INFO  2025-05-26T22:40:16.340Z got fast theme-setting value system
> INFO  2025-05-26T22:40:16.551Z NotificationService not updating notifications. Notifications are enabled; app is focused; there is no notification data
> INFO  2025-05-26T22:40:16.577Z Loaded this list of log files from logPath: app.log, main.log
Screenshots

Image

Device

Samsung S22/Samsung A53

Android version

Android 14/Android 14

Signal version

7.42.2/7.42.2

Link to debug log

My Desktop Log
My Android Log
My Friend's Android Log

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the MessageReceiver.decryptAndCacheBatch and MessageReceiver.decryptEnvelope entries in the supplied logs, then trace the sealed-sender decryption path associated with the unidentified-message entries. Compare the sender and recipient device logs to isolate why delivery does not complete; done means the affected conversation reliably delivers messages without disrupting normal conversations.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.