We have landed an important internal snapd change that affects snap downloads (install, refreshes, manual snap download) that should fix issues with poor/unstable network connections, where snapd could get stuck inside download-handling code until restarted. The fix is available in snapd from edge channel, and will be included in release 2.49 (i.e. it is not going to be included in the soon-to-be released 2.48).
With the fix, snapd will now require an average download speed of 4kB/sec and the download gets cancelled if this is not met. The speed is measured over 5-minute time windows, so that temporary drops do not immediately interrupt the download. The following error will be displayed if throughput requirement is not met:
$ snap install lxd error: cannot perform the following tasks: - Download snap "core18" (1932) from channel "stable" (download too slow: 3100 bytes/sec)
For more technical details see the description and discussion under the PR https://github.com/snapcore/snapd/pull/9580