{"record":{"id":"f21f633cbac94c81","repo":"BerriAI/litellm","slug":"openai-client-is-not-an-instance-of-asyncopenai-m","errorCode":null,"errorMessage":"OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client.","messagePattern":"OpenAI client is not an instance of AsyncOpenAI\\. Make sure you passed an AsyncOpenAI client\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/azure/batches/handler.py","lineNumber":69,"sourceCode":"        client: AzureOpenAI | AsyncAzureOpenAI | OpenAI | AsyncOpenAI | None = None,\n        litellm_params: dict | None = None,\n    ) -> LiteLLMBatch | Coroutine[object, object, LiteLLMBatch]:\n        azure_client: AzureOpenAI | AsyncAzureOpenAI | OpenAI | AsyncOpenAI | None = self.get_azure_openai_client(\n            api_key=api_key,\n            api_base=api_base,\n            api_version=api_version,\n            client=client,\n            _is_async=_is_async,\n            litellm_params=litellm_params or {},\n        )\n        if azure_client is None:\n            raise ValueError(\n                \"OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment.\"\n            )\n\n        if _is_async is True:\n            if not isinstance(azure_client, (AsyncAzureOpenAI, AsyncOpenAI)):\n                raise ValueError(\n                    \"OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client.\"\n                )\n            return self.acreate_batch(create_batch_data=create_batch_data, azure_client=azure_client)\n        response = cast(AzureOpenAI | OpenAI, azure_client).batches.create(**create_batch_data)\n        return LiteLLMBatch.model_validate(response.model_dump())\n\n    async def aretrieve_batch(\n        self,\n        retrieve_batch_data: RetrieveBatchRequest,\n        client: AsyncAzureOpenAI | AsyncOpenAI,\n    ) -> LiteLLMBatch:\n        response: Final = await client.batches.retrieve(**retrieve_batch_data)\n        return LiteLLMBatch.model_validate(response.model_dump())\n\n    def retrieve_batch(\n        self,\n        _is_async: bool,\n        retrieve_batch_data: RetrieveBatchRequest,","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/azure/batches/handler.py#L51-L87","documentation":"Error \"OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/azure/batches/handler.py:69 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass an AsyncOpenAI client instance."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}