{"record":{"id":"ac92016eb3299b4b","repo":"BerriAI/litellm","slug":"polling-response-response-id-not-found-or-expire","errorCode":null,"errorMessage":"Polling response {response_id} not found or expired","messagePattern":"Polling response (.+?) not found or expired","errorType":"http","errorClass":"HTTPException","httpStatus":404,"severity":"error","filePath":"litellm/proxy/response_api_endpoints/endpoints.py","lineNumber":723,"sourceCode":"    )\n    from litellm.proxy.response_polling.polling_handler import ResponsePollingHandler\n\n    # Check if this is a polling ID\n    if ResponsePollingHandler.is_polling_id(response_id):\n        # Handle polling response\n        if not redis_usage_cache:\n            raise HTTPException(\n                status_code=500,\n                detail=\"Redis cache not configured. Polling requires Redis.\",\n            )\n\n        polling_handler: Final = ResponsePollingHandler(redis_cache=redis_usage_cache)\n\n        # Get current state from cache\n        state: Final = await polling_handler.get_state(response_id)\n\n        if not state:\n            raise HTTPException(\n                status_code=404,\n                detail=f\"Polling response {response_id} not found or expired\",\n            )\n\n        # Return the whole state directly (OpenAI Response object format)\n        # https://platform.openai.com/docs/api-reference/responses/object\n        return state\n\n    # Normal provider response flow\n    data: Final = await _read_request_body(request=request)\n    data[\"response_id\"] = response_id\n    processor: Final = ProxyBaseLLMRequestProcessing(data=data)\n    try:\n        return await processor.base_process_llm_request(\n            request=request,\n            fastapi_response=fastapi_response,\n            user_api_key_dict=user_api_key_dict,\n            route_type=\"aget_responses\",","sourceCodeStart":705,"sourceCodeEnd":741,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/response_api_endpoints/endpoints.py#L705-L741","documentation":"Polling lookup on response retrieval: Redis is configured, but ResponsePollingHandler.get_state returned nothing for the polling response_id — the polling entry expired from the cache or never existed; surfaced as 404.","triggerScenarios":"Thrown at litellm/proxy/response_api_endpoints/endpoints.py:723 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Poll before the response TTL expires; re-submit the request if the stored response expired.","Verify the response_id matches the one returned at submission."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}