you should have exponential backoff on errors to prevent spamming with reconnect attempts