{"record":{"id":"a3a0a75dc5235487","repo":"BerriAI/litellm","slug":"no-operation-name-in-veo-response-response-data","errorCode":null,"errorMessage":"No operation name in Veo response: {response_data}","messagePattern":"No operation name in Veo response: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/gemini/videos/transformation.py","lineNumber":325,"sourceCode":"            \"error\": {...}\n        }\n\n        We return this as a VideoObject with:\n        - id: operation name (used for polling)\n        - status: \"processing\"\n        - usage: includes duration_seconds and optional video_resolution for cost calculation\n        \"\"\"\n        response_data: Final = raw_response.json()\n\n        # Parse response using Pydantic model for type safety\n        try:\n            operation_response: Final = GeminiLongRunningOperationResponse(**response_data)\n        except Exception as e:\n            raise ValueError(f\"Failed to parse operation response: {e}\")\n\n        operation_name: Final = operation_response.name\n        if not operation_name:\n            raise ValueError(f\"No operation name in Veo response: {response_data}\")\n\n        if custom_llm_provider:\n            video_id = encode_video_id_with_provider(operation_name, custom_llm_provider, model)\n        else:\n            video_id = operation_name\n\n        video_obj: Final = VideoObject(\n            id=video_id,\n            object=\"video\",\n            status=\"processing\",\n            model=model,\n        )\n\n        usage_data: Final[dict[str, Any]] = {}\n        if request_data:\n            parameters: Final = request_data.get(\"parameters\", {})\n            duration: Final = parameters.get(\"durationSeconds\") or DEFAULT_GOOGLE_VIDEO_DURATION_SECONDS\n            if duration is not None:","sourceCodeStart":307,"sourceCodeEnd":343,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/gemini/videos/transformation.py#L307-L343","documentation":"Error \"No operation name in Veo response: {response_data}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/gemini/videos/transformation.py:325 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The Veo response lacked an operation name; check the request and API status."],"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-15T17:31:12.345Z"}