{"record":{"id":"b69f3c2b481c0b9b","repo":"openai/openai-python","slug":"expected-a-non-empty-value-for-response-id-but-r-b69f3c","errorCode":null,"errorMessage":"Expected a non-empty value for `response_id` but received {response_id!r}","messagePattern":"Expected a non-empty value for `response_id` but received (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/openai/resources/beta/responses/responses.py","lineNumber":1668,"sourceCode":"\n    def retrieve(\n        self,\n        response_id: str,\n        *,\n        include: List[BetaResponseIncludable] | Omit = omit,\n        include_obfuscation: bool | Omit = omit,\n        starting_after: int | Omit = omit,\n        stream: Literal[False] | Literal[True] | Omit = omit,\n        betas: List[Literal[\"responses_multi_agent=v1\"]] | Omit = omit,\n        # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.\n        # The extra values given here take precedence over values defined on the client or passed to this method.\n        extra_headers: Headers | None = None,\n        extra_query: Query | None = None,\n        extra_body: Body | None = None,\n        timeout: float | httpx2.Timeout | None | NotGiven = not_given,\n    ) -> BetaResponse | Stream[BetaResponseStreamEvent]:\n        if not response_id:\n            raise ValueError(f\"Expected a non-empty value for `response_id` but received {response_id!r}\")\n        extra_headers = {\n            **strip_not_given({\"openai-beta\": \",\".join(str(e) for e in betas) if is_given(betas) else not_given}),\n            **(extra_headers or {}),\n        }\n        return self._get(\n            path_template(\"/responses/{response_id}?beta=true\", response_id=response_id),\n            options=make_request_options(\n                extra_headers=extra_headers,\n                extra_query=extra_query,\n                extra_body=extra_body,\n                timeout=timeout,\n                query=maybe_transform(\n                    {\n                        \"include\": include,\n                        \"include_obfuscation\": include_obfuscation,\n                        \"starting_after\": starting_after,\n                        \"stream\": stream,\n                    },","sourceCodeStart":1650,"sourceCodeEnd":1686,"githubUrl":"https://github.com/openai/openai-python/blob/9917c6e28e66e90e1227b3d223c06a8c5441515a/src/openai/resources/beta/responses/responses.py#L1650-L1686","documentation":"The sync beta Responses retrieve method requires a non-empty `response_id` for the GET URL `/responses/{response_id}?beta=true`. The generated guard raises ValueError before any request when the value is falsy.","triggerScenarios":"Calling `client.beta.responses.retrieve(response_id=\"\")` or None on the sync client (responses.py:1668).","commonSituations":"Polling a background response with an unset ID; passing thread_id or model instead of response_id.","solutions":["Confirm response_id comes from the create call's returned object","Validate non-empty before polling/retrieving","Check variable naming to avoid passing the wrong resource ID"],"exampleFix":"// before\nr = client.beta.responses.retrieve(response_id=os.getenv(\"RESPONSE_ID\"))\n// after\nr = client.beta.responses.retrieve(response_id=os.environ[\"RESPONSE_ID\"])","handlingStrategy":"validation","validationCode":"if not response_id:\n    raise ValueError(\"response_id required for retrieve\")","typeGuard":"def is_valid_response_id(v: object) -> bool:\n    return isinstance(v, str) and bool(v.strip())","tryCatchPattern":"try:\n    r = client.beta.responses.retrieve(response_id=rid)\nexcept ValueError:\n    raise","preventionTips":["Use os.environ[...] for required poll IDs","Keep resource IDs in typed dataclasses to avoid mix-ups"],"tags":["python","validation","responses","path-parameter"],"backgroundTag":"empty-required-parameter","analyzedSha":"9917c6e28e66e90e1227b3d223c06a8c5441515a","analyzedAt":"2026-08-28T11:46:34.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}