add a safety valve on timeout
retry partial downloads