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) ```
Forgot to mention the KDE Connect versions. Android: 1.16.0 Windows: 6 May 2021 release build.
have you set any filesystem locations in the Share and Receive plugin yet?
(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.
Any luck with identifying the issue here? Something wrong with SAF?
Same problem on Windows 10 21H2 KDEConnect is latest version
No luck with debugging this yet?
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.