The file being corrupt is expected when the put operation fail. Why it would do so, while in progress nonetheless, is difficult to say, maybe your route/firewall, or some device "power save" feature is interfering.
I just tested it again, on my LAN, and it still works as expected on with device.