Steps to Reproduce
- Install and configure Remote Config
- Get
RemoteConfig.instance twice in parallel
- See that the second call will fail with
Bad state: Future already completed
Cause of the bug
When getting the RemoteConfig.instance the source code here checks whether the instance was already retrieved.
When calling RemoteConfig.instance twice both of these calls go into the if-statement and try to retrieve the instance.
Then in here both calls to get RemoteConfig.instance try to complete with the instance, but the second one fails as the first one already completed the Completer.
Logs
I hope you don't mind if I did not include any logs here as the fix is pretty obvious ;)