{"record":{"id":"d6563e83043707c2","repo":"redis/redis-py","slug":"username-and-password-cannot-be-passed-along-w","errorCode":null,"errorMessage":"'username' and 'password' cannot be passed along with 'credential_provider'. Please provide only one of the following arguments: \n1. 'password' and (optional) 'username'\n2. 'credential_provider'","messagePattern":"'username' and 'password' cannot be passed along with 'credential_provider'\\. Please provide only one of the following arguments: \n1\\. 'password' and \\(optional\\) 'username'\n2\\. 'credential_provider'","errorType":"exception","errorClass":"DataError","httpStatus":null,"severity":"error","filePath":"redis/asyncio/connection.py","lineNumber":642,"sourceCode":"        ) = None,\n        himport_registry: HImportRegistry | None = None,\n    ):\n        \"\"\"\n        Initialize a new async Connection.\n\n        Parameters\n        ----------\n        driver_info : DriverInfo, optional\n            Driver metadata for CLIENT SETINFO. If provided, lib_name and lib_version\n            are ignored. If not provided, a DriverInfo will be created from lib_name\n            and lib_version. Explicit None disables CLIENT SETINFO.\n        lib_name : str, optional\n            **Deprecated.** Use driver_info instead. Library name for CLIENT SETINFO.\n        lib_version : str, optional\n            **Deprecated.** Use driver_info instead. Library version for CLIENT SETINFO.\n        \"\"\"\n        if (username or password) and credential_provider is not None:\n            raise DataError(\n                \"'username' and 'password' cannot be passed along with 'credential_\"\n                \"provider'. Please provide only one of the following arguments: \\n\"\n                \"1. 'password' and (optional) 'username'\\n\"\n                \"2. 'credential_provider'\"\n            )\n        if event_dispatcher is None:\n            self._event_dispatcher = EventDispatcher()\n        else:\n            self._event_dispatcher = event_dispatcher\n        self.db = db\n        self.client_name = client_name\n\n        # Handle driver_info: if provided, use it; otherwise create from lib_name/lib_version.\n        self.driver_info = resolve_driver_info(driver_info, lib_name, lib_version)\n\n        self.credential_provider = credential_provider\n        self.password = password\n        self.username = username","sourceCodeStart":624,"sourceCodeEnd":660,"githubUrl":"https://github.com/redis/redis-py/blob/6a6b581b48225afa0b76912d1028c6035baee932/redis/asyncio/connection.py#L624-L660","documentation":"DataError raised at the top of the async Connection constructor (redis/asyncio/connection.py:641) when both (username or password) and credential_provider are supplied. The library cannot decide which credential source to use, so it refuses the ambiguous configuration. Provide exactly one: static credentials, or a credential provider - never both.","triggerScenarios":"`Redis(username='u', password='p', credential_provider=MyProvider())`; mixing env-var/default credentials with an explicit provider.","commonSituations":"Layered config where a base client sets a password and a subclass adds a credential_provider; migrating from static to dynamic credentials and leaving the old fields populated.","solutions":["Remove username/password and keep only credential_provider","Or remove credential_provider and keep username/password","Audit config-merging code that unions both sources"],"exampleFix":"// before\nRedis(username='u', password='p', credential_provider=provider)\n// after\nRedis(credential_provider=provider)","handlingStrategy":"validation","validationCode":"if (username or password) and credential_provider is not None:\n    raise ValueError('pass either username/password or credential_provider, not both')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Choose exactly one credential source","When migrating to a credential_provider, strip static username/password from config"],"tags":["async","connection","auth","credentials","config"],"backgroundTag":null,"analyzedSha":"6a6b581b48225afa0b76912d1028c6035baee932","analyzedAt":"2026-08-10T12:52:44.840Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-21T04:17:39.646Z"}