Signal-android: Unable to send attachments via WiFi network (at least for some contacts)

Created on 17 Jan 2020  路  5Comments  路  Source: signalapp/Signal-Android


Bug Description

When I try to send attachments, specifically images/pictures, when I am connected to a Wi-Fi network, the message will not be sent/uploaded properly. The message will be shown as loading, but the process of sending seems to stall. I am only experiencing this when I am using a Wi-Fi network, sending attachments via mobile data network works fine without any issues.

When I switch to a mobile data network during uploading, the message will be sent quickly. Interestingly, sending text messages (without any file attached) works completely fine when sent via Wi-Fi.

This error does not come up all the time, this rather seems to be an issue with some contacts only. Unfortunately, I could not find out why specifically...

Steps to Reproduce

  1. Select a conversation from the list and/or your contacts
  2. Connect to a Wi-Fi network (and turn off mobile data)
  3. Add an attachment to the message
  4. Send the message
  5. (Deactivate Wi-Fi network and connect to mobile data network)

Actual Result:

Sending the message/attachment will not start or stall before starting. The problem persists, waiting does not solve it.

Expected Result:

The message, including the attachments, should be sent immediately, no matter what network you are connected too (as long as your network is properly connected to the internet).

Platform Info

Signal Version: 4.53.6

Operating System: LineageOS 16.0 (Android 9)

Linked Device Version: LineageOS 16.0-20200108-NIGHTLY-a5y17lte

Link to Debug Log

https://debuglogs.org/7044813054e2cd9f508d6c84b25fd76af65e756c060183cabe5f0b681135c199

Most helpful comment

Hi! Someone can assignee me to this issue? I want to deal with it.

All 5 comments

Hi! Someone can assignee me to this issue? I want to deal with it.

Hi! Someone can assignee me to this issue? I want to deal with it.

Hey! Thanks a lot! Unfortunately I am not a contributor to this project, therefore I cannot assign you on my own.

I only see one attachment upload. Here's the relevant log section:

2020-01-16 23:29:06.768 GMT+01:00 I Job: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob] onSubmit() (Time Since Submission: 51 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:06.769 GMT+01:00 I Job: [JOB::fcb8e484-a98a-4288-9c0d-57b5fd4a1b31][PushMediaSendJob] onSubmit() (Time Since Submission: 51 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:06.773 GMT+01:00 I ConversationActivity: onSecurityUpdated()
2020-01-16 23:29:06.775 GMT+01:00 I ConversationActivity: updateDefaultSubscriptionId(null)
2020-01-16 23:29:06.777 GMT+01:00 D JobSchedulerScheduler: onStartJob()
2020-01-16 23:29:06.794 GMT+01:00 D JobSchedulerScheduler: onStartJob()
2020-01-16 23:29:06.810 GMT+01:00 D AbstractCursorLoader: [ConversationLoader] Cursor load time: 26 ms
2020-01-16 23:29:06.841 GMT+01:00 I JobRunner: [JOB::dd6f5c5d-898b-437a-b216-7213a93053fc][AttachmentCompressionJob][2] Running job. (Time Since Submission: 132 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:06.842 GMT+01:00 D WakeLockUtil: Acquired wakelock with tag: signal:********-****-****-****-**********fc
2020-01-16 23:29:06.842 GMT+01:00 D AttachmentCompressionJo: Running for: AttachmentId::(550, 1579213746436)
2020-01-16 23:29:06.891 GMT+01:00 I ThumbnailView: Not re-loading slide for fast preflight: 1820417150515666267
2020-01-16 23:29:06.938 GMT+01:00 D AbstractCursorLoader: [ConversationLoader] Cursor load time: 23 ms
2020-01-16 23:29:06.963 GMT+01:00 I BitmapUtil: Initial scaled bitmap has size of 13860000 bytes.
2020-01-16 23:29:06.963 GMT+01:00 I BitmapUtil: Max dimensions 4096 x 4096, 6291456 bytes
2020-01-16 23:29:06.971 GMT+01:00 I ThumbnailView: Not re-loading slide content://org.thoughtcrime.securesms/part/1579213746436/550
2020-01-16 23:29:07.033 GMT+01:00 D ConversationActivity: Setting link preview: false
2020-01-16 23:29:07.088 GMT+01:00 D BitmapUtil: iteration with quality 90 size 354028 bytes.
2020-01-16 23:29:07.089 GMT+01:00 I BitmapUtil: createScaledBytes(org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader$DecryptableUri) -> quality 85, 1 attempt(s) over 1 sizes.
2020-01-16 23:29:07.106 GMT+01:00 I AttachmentDatabase: [setAttachmentData] No matching attachment data found. /data/user/0/org.thoughtcrime.securesms/app_parts/part4659559208010009455.mms
2020-01-16 23:29:07.114 GMT+01:00 I AttachmentDatabase: [updateAttachmentData] Updated 1 rows.
2020-01-16 23:29:07.123 GMT+01:00 I AttachmentDatabase: [markAttachmentAsTransformed] Updated 1 rows.
2020-01-16 23:29:07.124 GMT+01:00 D WakeLockUtil: Released wakelock with tag: signal:********-****-****-****-**********fc
2020-01-16 23:29:07.125 GMT+01:00 I JobRunner: [JOB::dd6f5c5d-898b-437a-b216-7213a93053fc][AttachmentCompressionJob][2] Job finished with result: SUCCESS (Time Since Submission: 416 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:07.145 GMT+01:00 I JobRunner: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob][2] Running job. (Time Since Submission: 436 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:07.146 GMT+01:00 D WakeLockUtil: Acquired wakelock with tag: signal:********-****-****-****-**********88
2020-01-16 23:29:07.192 GMT+01:00 I AttachmentUploadJob: Uploading attachment for message 1857 with ID AttachmentId::(550, 1579213746436)
2020-01-16 23:29:07.199 GMT+01:00 D JobSchedulerScheduler: jobFinished()
2020-01-16 23:29:07.200 GMT+01:00 D JobSchedulerScheduler: jobFinished()
2020-01-16 23:29:07.440 GMT+01:00 D SignalServiceMessageSender: Using pipe to retrieve attachment upload attributes...
2020-01-16 23:29:07.658 GMT+01:00 W WebSocketConnection: WSC onMessage()
2020-01-16 23:29:07.660 GMT+01:00 W WebSocketConnection: Message Type: 2
2020-01-16 23:29:16.406 GMT+01:00 D PassphraseRequiredActionBarActivity: [MediaSendActivity] onStop()
2020-01-16 23:29:16.410 GMT+01:00 D PassphraseRequiredActionBarActivity: [MediaSendActivity] onDestroy()
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob] Encountered a retryable exception. (Time Since Submission: 14720 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob: org.whispersystems.signalservice.api.push.exceptions.PushNetworkException: java.net.ConnectException: Failed to connect to cdn.signal.org/13.35.253.56:443
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.whispersystems.signalservice.internal.push.PushServiceSocket.uploadToCdn(PushServiceSocket.java:899)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.whispersystems.signalservice.internal.push.PushServiceSocket.uploadAttachment(PushServiceSocket.java:761)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.whispersystems.signalservice.api.SignalServiceMessageSender.uploadAttachment(SignalServiceMessageSender.java:362)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.thoughtcrime.securesms.jobs.AttachmentUploadJob.onRun(AttachmentUploadJob.java:102)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.thoughtcrime.securesms.jobs.BaseJob.run(BaseJob.java:21)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:82)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.thoughtcrime.securesms.jobmanager.JobRunner.run(JobRunner.java:46)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob: Caused by: java.net.ConnectException: Failed to connect to cdn.signal.org/13.35.253.56:443
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:248)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:166)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.RealCall.execute(RealCall.java:92)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at org.whispersystems.signalservice.internal.push.PushServiceSocket.uploadToCdn(PushServiceSocket.java:897)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    ... 6 more
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob: Caused by: java.net.ConnectException: failed to connect to cdn.signal.org/13.35.253.56 (port 443) from /:: (port 0) after 30000ms: connect failed: ENETUNREACH (Network is unreachable)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at libcore.io.IoBridge.connect(IoBridge.java:137)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at java.net.Socket.connect(Socket.java:621)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:73)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:246)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    ... 24 more
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob: Caused by: android.system.ErrnoException: connect failed: ENETUNREACH (Network is unreachable)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at libcore.io.Linux.connect(Native Method)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:118)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at libcore.io.IoBridge.connectErrno(IoBridge.java:168)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    at libcore.io.IoBridge.connect(IoBridge.java:129)
2020-01-16 23:29:21.433 GMT+01:00 I BaseJob:    ... 32 more
2020-01-16 23:29:21.475 GMT+01:00 D WakeLockUtil: Released wakelock with tag: signal:********-****-****-****-**********88
2020-01-16 23:29:21.476 GMT+01:00 I JobRunner: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob][2] Job finished with result: RETRY (Time Since Submission: 14728 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:21.477 GMT+01:00 I JobController: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob] Scheduling a retry in 1969 ms. (Time Since Submission: 14759 ms, Lifespan: 86400000 ms, Run Attempt: 1/Unlimited)
2020-01-16 23:29:21.478 GMT+01:00 I InAppScheduler: Scheduling a retry in 1969 ms.
2020-01-16 23:29:21.480 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:21.480 GMT+01:00 I JobSchedulerScheduler: Scheduling a run in 1969 ms.
2020-01-16 23:29:21.481 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:21.482 GMT+01:00 W WebSocketConnection: javax.net.ssl.SSLException: Read error: ssl=0x7749253948: I/O error during system call, Software caused connection abort
    at org.conscrypt.NativeCrypto.SSL_read(Native Method)
    at org.conscrypt.NativeSsl.read(NativeSsl.java:409)
    at org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:548)
    at okio.Okio$2.read(Okio.java:140)
    at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
    at okio.RealBufferedSource.request(RealBufferedSource.java:72)
    at okio.RealBufferedSource.require(RealBufferedSource.java:65)
    at okio.RealBufferedSource.readByte(RealBufferedSource.java:78)
    at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
    at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
    at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
    at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:764)
2020-01-16 23:29:21.483 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:21.485 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:21.488 GMT+01:00 W WebSocketConnection: javax.net.ssl.SSLException: Read error: ssl=0x7745f8a9c8: I/O error during system call, Software caused connection abort
    at org.conscrypt.NativeCrypto.SSL_read(Native Method)
    at org.conscrypt.NativeSsl.read(NativeSsl.java:409)
    at org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:548)
    at okio.Okio$2.read(Okio.java:140)
    at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
    at okio.RealBufferedSource.request(RealBufferedSource.java:72)
    at okio.RealBufferedSource.require(RealBufferedSource.java:65)
    at okio.RealBufferedSource.readByte(RealBufferedSource.java:78)
    at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:117)
    at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:101)
    at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
    at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:764)
2020-01-16 23:29:21.488 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:21.489 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:21.680 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:21.681 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:21.698 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:21.699 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:21.700 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:21.700 GMT+01:00 W WebSocketConnection: 
2020-01-16 23:29:21.701 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:21.701 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:21.702 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:21.702 GMT+01:00 W WebSocketConnection: 
2020-01-16 23:29:21.704 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:21.704 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:22.097 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:22.104 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:22.111 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:22.114 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:22.115 GMT+01:00 W WebSocketConnection: 
2020-01-16 23:29:22.115 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:22.116 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:22.118 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:22.123 GMT+01:00 W WebSocketConnection: onFailure()
2020-01-16 23:29:22.124 GMT+01:00 W WebSocketConnection: 
2020-01-16 23:29:22.124 GMT+01:00 W WebSocketConnection: onClose()...
2020-01-16 23:29:22.125 GMT+01:00 W ApplicationDependencyPr: onDisconnected()
2020-01-16 23:29:22.202 GMT+01:00 I JobManager: onConstraintMet(NetworkConstraintObserver)
2020-01-16 23:29:22.264 GMT+01:00 I JobManager: onConstraintMet(NetworkConstraintObserver)
2020-01-16 23:29:22.717 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:22.723 GMT+01:00 W WebSocketConnection: WSC connect()...
2020-01-16 23:29:22.725 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:22.730 GMT+01:00 I ApplicationDependencyPr: onConnecting()
2020-01-16 23:29:23.273 GMT+01:00 W WebSocketConnection: onConnected()
2020-01-16 23:29:23.275 GMT+01:00 I ApplicationDependencyPr: onConnected()
2020-01-16 23:29:23.280 GMT+01:00 W WebSocketConnection: onConnected()
2020-01-16 23:29:23.281 GMT+01:00 I ApplicationDependencyPr: onConnected()
2020-01-16 23:29:23.285 GMT+01:00 W WebSocketConnection: WSC onMessage()
2020-01-16 23:29:23.286 GMT+01:00 W WebSocketConnection: Message Type: 1
2020-01-16 23:29:23.443 GMT+01:00 I InAppScheduler: Triggering a job retry.
2020-01-16 23:29:23.456 GMT+01:00 I JobRunner: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob][4] Running job. (Time Since Submission: 16745 ms, Lifespan: 86400000 ms, Run Attempt: 2/Unlimited)
2020-01-16 23:29:23.457 GMT+01:00 D WakeLockUtil: Acquired wakelock with tag: signal:********-****-****-****-**********88
2020-01-16 23:29:23.459 GMT+01:00 I AttachmentUploadJob: Uploading attachment for message 1857 with ID AttachmentId::(550, 1579213746436)
2020-01-16 23:29:23.481 GMT+01:00 D JobSchedulerScheduler: onStartJob()
2020-01-16 23:29:23.708 GMT+01:00 D SignalServiceMessageSender: Using pipe to retrieve attachment upload attributes...
2020-01-16 23:29:23.836 GMT+01:00 W WebSocketConnection: WSC onMessage()
2020-01-16 23:29:23.840 GMT+01:00 W WebSocketConnection: Message Type: 2
2020-01-16 23:29:24.769 GMT+01:00 D WakeLockUtil: Released wakelock with tag: signal:********-****-****-****-**********88
2020-01-16 23:29:24.771 GMT+01:00 I JobRunner: [JOB::bbf1ad6a-09e1-4e80-8054-a9e25fcbcb88][AttachmentUploadJob][4] Job finished with result: SUCCESS (Time Since Submission: 18060 ms, Lifespan: 86400000 ms, Run Attempt: 2/Unlimited)

Looks like it's submitted, starts running, and ~13s later fails. It retries, and then pretty much succeeds immediately. Idk what your network state was at each of these various points (we should probably log that).

@BElluu Feel free to investigate however you wish and post your ideas here.

I am having this exact issue. When I use Wifi 90% of the time I cannot send images through, but there is no problem when I use a VPN or mobile data. I have found this line to be responsible for the hanging.
https://github.com/signalapp/Signal-Android/blob/72e10ac5974eddd03d48a8bd4c12581db9c4b50b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java#L897

From that method I stepped further into the okhttp library and tracked down to this line which causes the stalling.
https://github.com/square/okhttp/blob/8511ee127f97f8cef2c382740b9cb6675d6ccae7/okhttp/src/main/java/okhttp3/internal/platform/AndroidPlatform.kt#L57

When I test with Wifi, from the debugger I can see it was trying to connect to cdn.signal.org/an_ipv6_address:443 but when I test with VPN or mobile data it was trying to connect to cdn.signal.org/an_ipv4_address:443. So then I disabled IPv6 on my router and voila, everything works as expected.

I know it's just a temporary fix, but I hope this can help the devs pinpoint the real underlying problem.

@phphong thanks! same here. sending via a vpn works!

Was this page helpful?
0 / 5 - 0 ratings