syncthing v1.18.2 has QUIC datagram size issues on Windows

After upgrade to v1.18.2 QUIC transport doesn’t work on Windows. QUIC works after downgrade to v1.18.1 on Windows server.

Windows server 2019 Log

2021-09-14 10:04:25.428: 13:04:25 INFO: Established secure connection to ubuntuID at windows_server:22000-ubuntu_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256

2021-09-14 10:04:25.428: 13:04:25 INFO: Device ubuntuID client is “syncthing v1.18.2” named “ubuntu.18.04” at windows_server:22000-ubuntu_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256

2021-09-14 10:04:25.751: 13:04:25 INFO: Connection to ubuntuID at windows_server:22000-ubuntu_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256 closed: reading length: INTERNAL_ERROR: write udp windows_server:22000->ubuntu_server:22000: wsasendto: A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself.


2021-09-14 10:19:03.781: 13:19:03 INFO: Established secure connection to ubuntuID windows_server:22000-ubuntu_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256

2021-09-14 10:19:03.781: 13:19:03 INFO: Device ubuntuID client is “syncthing v1.18.2” named “ubuntu.18.04” at windows_server:22000-ubuntu_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256

2021-09-14 10:19:04.111: 13:19:04 INFO: Connection to ubuntuID windows_server:22000-ubuntu_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256 closed: reading length: INTERNAL_ERROR: write udp windows_server:22000->ubuntu_server:22000: wsasendto: A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself.


Ubuntu 18.04 Log

2021/09/14 06:04:25 service.go:343: INFO: Established secure connection to windowsID at ubuntu_server:22000-windows_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256

2021/09/14 06:04:25 model.go:2202: INFO: Replacing old connection ubuntu_server:22000-windows_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256 with ubuntu_server:22000-windows_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256 for windowsID

2021/09/14 06:04:25 model.go:1750: INFO: Connection to windowsID at ubuntu_server:22000-windows_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256 closed: replacing connection

2021/09/14 06:04:25 model.go:2253: INFO: Device windowsID client is “syncthing v1.18.2” named “windows.server.2019” at ubuntu_server:22000-windows_server:22000/quic-server/TLS1.3-TLS_AES_128_GCM_SHA256


2021/09/14 06:19:03 service.go:343: INFO: Established secure connection to windowsID at ubuntu_server:22000-windows_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256

2021/09/14 06:19:03 model.go:2253: INFO: Device windowsID client is “syncthing v1.18.2” named “windows.server.2019” at ubuntu_server:22000-windows_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256

2021/09/14 06:19:34 model.go:1750: INFO: Connection to windowsID at ubuntu_server:22000-windows_server:22000/quic-client/TLS1.3-TLS_AES_128_GCM_SHA256 closed: reading length: timeout: no recent network activity


A quick search gave me a couple of similar issues:

I started up a clean Windows 10 to try it, and I’m not seeing this issue.

I was able to reproduce this issue on hardware servers (Windows server 2008 and 2019) with NAT connections.

But the same hardware windows servers are working just fine via LAN connections.

VirtualBox VMs (Windows 10 and server 2019) aren’t affected as well.


Potential fix:

2 Likes