{"record":{"id":"a983180a12400e8b","repo":"BerriAI/litellm","slug":"responses-api-provider-config-is-required-to-proce","errorCode":null,"errorMessage":"responses_api_provider_config is required to process live streaming chunks","messagePattern":"responses_api_provider_config is required to process live streaming chunks","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/responses/streaming_iterator.py","lineNumber":236,"sourceCode":"        # ``_strip_sse_data_from_chunk`` on it — doing so would incorrectly mangle\n        # payloads whose actual JSON value happens to start with ``data:``.\n\n        # Handle \"[DONE]\" marker\n        if chunk == STREAM_SSE_DONE_STRING:\n            self.finished = True\n            return None\n\n        if self.logging_obj.completion_start_time is None:\n            self.logging_obj._update_completion_start_time(completion_start_time=datetime.now())\n\n        try:\n            # Parse the JSON chunk\n            parsed_chunk: Final = json.loads(chunk)\n\n            # Format as ResponsesAPIStreamingResponse\n            if isinstance(parsed_chunk, dict):\n                if self.responses_api_provider_config is None:\n                    raise ValueError(\"responses_api_provider_config is required to process live streaming chunks\")\n                openai_responses_api_chunk: Final = self.responses_api_provider_config.transform_streaming_response(\n                    model=self.model,\n                    parsed_chunk=parsed_chunk,\n                    logging_obj=self.logging_obj,\n                )\n\n                # Only when the SSE JSON carries a response body (delta events do not).\n                # Using getattr(..., \"response\") alone is unsafe with Mocks: they synthesize a\n                # truthy child Mock for any attribute, which breaks tests and is wrong on stream.\n                if \"response\" in parsed_chunk:\n                    response_object: Final[ResponsesAPIResponse | None] = getattr(\n                        openai_responses_api_chunk, \"response\", None\n                    )\n                    if response_object is not None:\n                        response: Final = ResponsesAPIRequestUtils._update_responses_api_response_id_with_model_id(\n                            responses_api_response=response_object,\n                            litellm_metadata=self.litellm_metadata,\n                            custom_llm_provider=self.custom_llm_provider,","sourceCodeStart":218,"sourceCodeEnd":254,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/responses/streaming_iterator.py#L218-L254","documentation":"Guard in the live responses streaming chunk processor: responses_api_provider_config is None, so provider-specific chunk transformation cannot run; the streaming path was entered without a resolved provider config.","triggerScenarios":"Thrown at litellm/responses/streaming_iterator.py:236 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide responses_api_provider_config when processing live streaming chunks."],"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-14T05:17:10.506Z"}