Today it raises ClientAuthenticationError because the method is decorated with wrap_exceptions. The purpose of that decorator is to prevent leaking exceptions from msal. This can be achieved in a more focused manner, allowing the method to raise the more appropriate ValueError when called with no scopes.