{"record":{"id":"0bd7a870407f0abb","repo":"BerriAI/litellm","slug":"operation-polling-timed-out","errorCode":null,"errorMessage":"Operation polling timed out.","messagePattern":"Operation polling timed out\\.","errorType":"exception","errorClass":"AzureOpenAIError","httpStatus":408,"severity":"error","filePath":"litellm/llms/azure/azure.py","lineNumber":927,"sourceCode":"                headers=headers,\n            )\n\n            await response.aread()\n\n            timeout_secs: Final[int] = AZURE_OPERATION_POLLING_TIMEOUT\n            start_time: Final = time.time()\n            if \"status\" not in response.json():\n                # Don't reflect the raw response body — when the polling\n                # URL points at an internal JSON API (cloud metadata\n                # service etc.) reflecting it here turns Blind SSRF into\n                # Full-Read SSRF. VERIA-51.\n                raise AzureOpenAIError(\n                    status_code=502,\n                    message=\"Polling response missing 'status' field\",\n                )\n            while response.json()[\"status\"] not in [\"succeeded\", \"failed\"]:\n                if time.time() - start_time > timeout_secs:\n                    raise AzureOpenAIError(status_code=408, message=\"Operation polling timed out.\")\n\n                await asyncio.sleep(int(response.headers.get(\"retry-after\") or 10))\n                response = await async_handler.get(\n                    url=operation_location_url,\n                    headers=headers,\n                )\n                await response.aread()\n\n            if response.json()[\"status\"] == \"failed\":\n                error_data: Final = response.json()\n                # Preserve Azure error details (e.g. content_policy_violation,\n                # inner_error, content_filter_results) as structured body so\n                # exception_type() can route them correctly.\n                _error_body: Final = error_data.get(\"error\", error_data)\n                _error_msg: Final = (\n                    _error_body.get(\"message\", \"Image generation failed\")\n                    if isinstance(_error_body, dict)\n                    else json.dumps(error_data)","sourceCodeStart":909,"sourceCodeEnd":945,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/azure/azure.py#L909-L945","documentation":"Error \"Operation polling timed out.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/azure/azure.py:927 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Increase the polling timeout or check the Azure operation status manually."],"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"}