{"record":{"id":"36a5a8078e6bdfe0","repo":"BerriAI/litellm","slug":"unknown-openai-event-openai-event","errorCode":null,"errorMessage":"Unknown openai event: {openai_event}","messagePattern":"Unknown openai event: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/gemini/realtime/transformation.py","lineNumber":1494,"sourceCode":"                    \"current_delta_chunks\": current_delta_chunks,\n                    \"current_item_chunks\": current_item_chunks,\n                    \"current_delta_type\": current_delta_type,\n                    \"session_configuration_request\": session_configuration_request,\n                }\n                _returned_message = self.handle_openai_modality_event(\n                    openai_event,\n                    json_message,\n                    _modality_input,\n                    delta_type=\"text\" if \"text\" in openai_event.value else \"audio\",\n                )\n                returned_message.extend(_returned_message[\"returned_message\"])\n                current_output_item_id = _returned_message[\"current_output_item_id\"]\n                current_response_id = _returned_message[\"current_response_id\"]\n                current_conversation_id = _returned_message[\"current_conversation_id\"]\n                current_delta_chunks = _returned_message[\"current_delta_chunks\"]\n                current_delta_type = _returned_message[\"current_delta_type\"]\n            else:\n                raise ValueError(f\"Unknown openai event: {openai_event}\")\n        if len(returned_message) == 0:\n            unhandled_known_keys: Final = [\n                key\n                for key in json_message\n                if key in _KNOWN_GEMINI_TOP_LEVEL_KEYS\n                and not (key == \"serverContent\" and server_content_handled)\n                and not (key == \"toolCall\" and tool_call_handled)\n            ]\n            standalone_usage_metadata = json_message.get(\"usageMetadata\")\n            if isinstance(standalone_usage_metadata, dict):\n                self._pending_usage_metadata = standalone_usage_metadata\n            if not unhandled_known_keys:\n                return {\n                    \"response\": returned_message,\n                    \"current_output_item_id\": current_output_item_id,\n                    \"current_response_id\": current_response_id,\n                    \"current_delta_chunks\": current_delta_chunks,\n                    \"current_conversation_id\": current_conversation_id,","sourceCodeStart":1476,"sourceCodeEnd":1512,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/gemini/realtime/transformation.py#L1476-L1512","documentation":"Raised near the end of transform_realtime_response when the frame WAS recognized and mapped to an OpenAIRealtimeEventTypes value, but that value did not match any branch of the transformation if/elif chain. The mapping table and the handler chain have drifted: an enum the lookup can return but no handler processes hits the else-raise.","triggerScenarios":"A Gemini frame maps to an OpenAI event enum value (via the key-mapping search) that the big handler chain in transform_realtime_response does not implement — typically after a mapping entry is added without a matching handler, or vice versa, in a given litellm version.","commonSituations":"litellm version skew/bug between mapping and handlers; newly added event mappings in patch releases; using forked/custom transformations partially updated.","solutions":["Upgrade (or pin) litellm to a release where mapping and handlers are consistent.","Catch the ValueError per frame, log the openai_event name, and skip — the session usually remains usable.","Report the unmapped enum to the litellm issue tracker with the raw frame."],"exampleFix":"# before\nout = config.transform_realtime_response(message=frame, ...)\n\n# after\ntry:\n    out = config.transform_realtime_response(message=frame, ...)\nexcept ValueError as e:\n    if 'Unknown openai event' in str(e):\n        logger.warning('Unhanded event enum, skipping frame: %s', e)\n        out = {'returned_message': []}\n    else:\n        raise\n","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    out = config.transform_realtime_response(message=frame, ...)\nexcept ValueError as e:\n    if \"Unknown openai event\" in str(e):\n        logger.warning(\"Unhandled mapped event enum; skipping frame: %s\", e)\n        out = {\"returned_message\": []}\n    else:\n        raise","preventionTips":["Pin a litellm release regression-tested for Gemini realtime.","Report unmapped-enum errors upstream with the raw frame attached.","Skip unknown-mapped frames instead of terminating live sessions."],"tags":["gemini","realtime","event-mapping","internal","versioning"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}