Bug 436675 - File transfer from Windows to Android fails (it used to work earlier) (it works from Android to Windows)
Summary: File transfer from Windows to Android fails (it used to work earlier) (it wor...
Status: RESOLVED WORKSFORME
Alias: None
Product: kdeconnect
Classification: Applications
Component: common (other bugs)
Version First Reported In: unspecified
Platform: Android Android 10.x
: NOR normal
Target Milestone: ---
Assignee: Albert Vaca Cintora
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-06 08:08 UTC by bohah87069
Modified: 2022-10-01 03:12 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bohah87069 2021-05-06 08:08:03 UTC
SUMMARY

At some point a few weeks (months?) ago, file transfers from Windows to Android stopped working. 

STEPS TO REPRODUCE

1. Right click on any file in Windows.
2. Click on "Send to remote device via KDE Connect"
3. Click on OK when the device selection dialogue appears.

OBSERVED RESULT

The file transfer progress dialogue appears, but it stays there indefinitely, never showing any progress.

Meanwhile, on the Android phone, a zero byte file is created with the correct name and extension, but nothing else happens for half a minute or so, after which a notification appears stating "Failed receiving file from [pcname]".

EXPECTED RESULT

The file should transfer successfully, as it used to earlier.

SOFTWARE/OS VERSIONS
Windows: 7
Android: LineageOS 17.1

ADDITIONAL INFORMATION

Logcat for successful Android -> Windows transfer:

```
05-06 12:20:49.555 W/ActivityThread(10933): handleWindowVisibility: no activity for token android.os.BinderProxy@e316003
05-06 12:20:50.765 W/SendFileActivity(10933): Unable to get file modification time. Available columns were: [_display_name, _size, _data]
05-06 12:20:50.767 W/SendFileActivity(10933): Unable to read file last modified time
05-06 12:20:50.831 I/KDE/LanLink(10933): Using port [port1]
05-06 12:20:51.204 I/KDE/LanLink(10933): Beginning to send payload
05-06 12:20:53.730 I/KDE/LanLink(10933): Finished sending payload ([x] bytes written)
```

Logcat for failed Windows -> Android transfer:

```
05-06 12:22:00.098 I/KDE/LanLinkProvider(10933): Broadcast identity package received from [pcname]
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): Cannot connect to /[ipaddress]
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): java.net.ConnectException: failed to connect to /[ipaddress] (port [port1]) from /:: (port [port2]): connect failed: ETIMEDOUT (Connection timed out)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.IoBridge.connect(IoBridge.java:143)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.Socket.connect(Socket.java:621)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.Socket.connect(Socket.java:570)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.Socket.<init>(Socket.java:450)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.net.Socket.<init>(Socket.java:250)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:285)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.udpPacketReceived(LanLinkProvider.java:131)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.lambda$setupUdpListener$4(LanLinkProvider.java:298)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.lambda$setupUdpListener$4$LanLinkProvider(Unknown Source:0)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at org.kde.kdeconnect.Backends.LanBackend.-$$Lambda$LanLinkProvider$PTwWRcetgphRwizdRW_GUK-3Oak.run(Unknown Source:2)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at java.lang.Thread.run(Thread.java:919)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.Linux.connect(Native Method)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.ForwardingOs.connect(ForwardingOs.java:95)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:136)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.ForwardingOs.connect(ForwardingOs.java:95)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.IoBridge.connectErrno(IoBridge.java:157)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	at libcore.io.IoBridge.connect(IoBridge.java:135)
05-06 12:22:31.188 E/KDE/LanLinkProvider(10933): 	... 15 more
05-06 12:22:31.188 W/KDE/LanLinkProvider(10933): Blacklisting /[ipaddress]
05-06 12:22:31.258 I/KDE/LanLinkProvider(10933): Identity package received from a TCP connection from [pcname]
05-06 12:22:31.258 I/KDE/LanLinkProvider(10933): Starting SSL handshake with [pcname] trusted:true
05-06 12:22:31.302 I/KDE/LanLinkProvider(10933): Handshake as client successful with [pcname] secured with TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
05-06 12:22:31.302 I/KDE/LanLinkProvider(10933): Reusing same link for device [deviceserialnumber]
05-06 12:22:33.854 E/KDE/LanLink(10933): Exception connecting to payload remote socket
05-06 12:22:33.854 E/KDE/LanLink(10933): java.net.ConnectException: failed to connect to /[ipaddress] (port [port3]) from /:: (port [port4]): connect failed: ETIMEDOUT (Connection timed out)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.IoBridge.connect(IoBridge.java:143)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.Socket.connect(Socket.java:621)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.net.Socket.connect(Socket.java:570)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLink.receivedNetworkPacket(LanLink.java:238)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLink.lambda$reset$0(LanLink.java:97)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at org.kde.kdeconnect.Backends.LanBackend.LanLink.lambda$reset$0$LanLink(Unknown Source:0)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at org.kde.kdeconnect.Backends.LanBackend.-$$Lambda$LanLink$u8LWlVA_uGoxlkxdXMbWulE13kY.run(Unknown Source:4)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at java.lang.Thread.run(Thread.java:919)
05-06 12:22:33.854 E/KDE/LanLink(10933): Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.Linux.connect(Native Method)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.ForwardingOs.connect(ForwardingOs.java:95)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:136)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.ForwardingOs.connect(ForwardingOs.java:95)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.IoBridge.connectErrno(IoBridge.java:157)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	at libcore.io.IoBridge.connect(IoBridge.java:135)
05-06 12:22:33.854 E/KDE/LanLink(10933): 	... 12 more
05-06 12:22:33.862 I/LanLink (10933): Socket closed: 230732410. Reason: Socket is closed
05-06 12:22:34.302 E/Shareplugin(10933): Error receiving file
05-06 12:22:34.302 E/Shareplugin(10933): java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.InputStream.read(byte[])' on a null object reference
05-06 12:22:34.302 E/Shareplugin(10933): 	at org.kde.kdeconnect.Plugins.SharePlugin.CompositeReceiveFileJob.receiveFile(CompositeReceiveFileJob.java:278)
05-06 12:22:34.302 E/Shareplugin(10933): 	at org.kde.kdeconnect.Plugins.SharePlugin.CompositeReceiveFileJob.run(CompositeReceiveFileJob.java:146)
05-06 12:22:34.302 E/Shareplugin(10933): 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
05-06 12:22:34.302 E/Shareplugin(10933): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
05-06 12:22:34.302 E/Shareplugin(10933): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-06 12:22:34.302 E/Shareplugin(10933): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-06 12:22:34.302 E/Shareplugin(10933): 	at java.lang.Thread.run(Thread.java:919)
```
Comment 1 bohah87069 2021-05-06 08:39:33 UTC
Forgot to mention the KDE Connect versions.

Android: 1.16.0
Windows: 6 May 2021 release build.
Comment 2 brute4s99 2021-07-16 04:04:35 UTC
have you set any filesystem locations in the Share and Receive plugin yet?
Comment 3 bohah87069 2021-07-23 17:16:22 UTC
(In reply to brute4s99 from comment #2)
> have you set any filesystem locations in the Share and Receive plugin yet?

Indeed. I had that set to a custom directory already. Once I upgraded to LOS 17.1, it stopped working. After reading potential solutions online, I tried removing and adding the directory again. That didn't work.

Then I removed the app's external folder access from settings and added the custom directory again. That didn't work either.
Comment 4 bohah87069 2021-11-21 12:10:51 UTC
Any luck with identifying the issue here? Something wrong with SAF?
Comment 5 Ytalo 2022-01-23 00:26:59 UTC
Same problem on Windows 10 21H2
KDEConnect is latest version
Comment 6 bohah87069 2022-07-15 15:36:50 UTC
No luck with debugging this yet?
Comment 7 bohah87069 2022-10-01 03:12:26 UTC
Somehow, installing KDE Connect on a separate device, and connecting it to the pair of devices that were experiencing this bug, made the bug vanish. I can now successfully transfer files from the PC to the Android device.