It should be possible to detect push and pull error that can retried, like HTTP 500s, DNS and TCP connection errors.