I spoke too soon--problem happened again, so my "fix" in Reply #17 is no good

It seems this is a meta-bug that happens when the zsync client talks to some http servers (e.g., lighttpd, busybox httpd, golang server using net/http in the standard library).
I'm not optimistic I'm going to find a proper fix, but I did find
two workarounds:
First and simplest workaround is to delete /usr/bin/zsync from the TCL machine. This causes both provides.sh and tce-update to fallback to using wget. The disadvantage is some wasted bandwidth.
Second solution is to use zsync2 (available at
https://github.com/go-deltasync/zsync2). Note that the executable is called
gozsync. For our purposes, it is a drop-in replacement for /usr/bin/zsync. Put gozsync in a directory in your PATH that appears before /usr/bin, for example, /home/tc/.local/bin, then:
$ cd /home/tc/.local/bin
$ ln -s gozsync zsyncNow gozsync/zsync2 takes precedence over the base system's zsync:
$ which -a zsync
/home/tc/.local/bin/zsync
/usr/bin/zsync
I did many tests and so far it seems zsync2/gozsync has no trouble talking to non-nginx http servers.