Client#sync takes a timeout parameter which is the amount of time to wait in case no new events are happening.
Net:HTTP#read_timeout is the amount of time until Net::ReadTimeout is raised in case the read syscall does not return. The default for this is 60 (seconds).
When calling Client#sync with a large timeout (e.g. 10 minutes), Net::ReadTimeout is raised before the server responds with an empty response.
As a workaround Client#sync can be called multiple times with a small timeout value.