If you call pusher.connect() on a connection that will never succeed (ie, no internet connection), the library will correctly retry a certain number of times and then eventually give up and move to the disconnected state. If the user then calls pusher.connect() again - it will not use this same retry logic, instead preferring to try once and then move to disconnected. This is inconsistent.