
Because of how the user-data was read, the same service name could be found multiple times if the user-search query matched multiple rows. Now the service names are read to a set, which ignores duplicates. The same service may be attempted again if the authentication fails and user-data is fetched again.