I still don't understand how calling provider.setCredentials() multiple times actually works. I'd expect a provider.addCredentials(). I know you're just updating existing code, but I feel like this is broken?