{"record":{"id":"c11d1ce4f9627740","repo":"BerriAI/litellm","slug":"video-delete-is-not-supported-by-vertex-ai-veo","errorCode":null,"errorMessage":"Video delete is not supported by Vertex AI Veo.","messagePattern":"Video delete is not supported by Vertex AI Veo\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"litellm/llms/vertex_ai/videos/transformation.py","lineNumber":644,"sourceCode":"        video_id: str,\n        api_base: str,\n        litellm_params: GenericLiteLLMParams,\n        headers: dict,\n    ) -> tuple[str, dict]:\n        \"\"\"\n        Video delete is not supported by Veo API.\n        \"\"\"\n        raise NotImplementedError(\n            \"Video delete is not supported by Vertex AI Veo. Videos are automatically cleaned up by Google.\"\n        )\n\n    def transform_video_delete_response(\n        self,\n        raw_response: httpx.Response,\n        logging_obj: LiteLLMLoggingObj,\n    ) -> VideoObject:\n        \"\"\"Video delete is not supported.\"\"\"\n        raise NotImplementedError(\"Video delete is not supported by Vertex AI Veo.\")\n\n    def transform_video_create_character_request(self, name, video: object, api_base, litellm_params, headers):\n        raise NotImplementedError(\"video create character is not supported for Vertex AI\")\n\n    def transform_video_create_character_response(self, raw_response, logging_obj):\n        raise NotImplementedError(\"video create character is not supported for Vertex AI\")\n\n    def transform_video_get_character_request(self, character_id, api_base, litellm_params, headers):\n        raise NotImplementedError(\"video get character is not supported for Vertex AI\")\n\n    def transform_video_get_character_response(self, raw_response, logging_obj):\n        raise NotImplementedError(\"video get character is not supported for Vertex AI\")\n\n    def get_video_edit_prefetch_params(\n        self,\n        video_id: str,\n        api_base: str,\n        litellm_params: GenericLiteLLMParams,","sourceCodeStart":626,"sourceCodeEnd":662,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/vertex_ai/videos/transformation.py#L626-L662","documentation":"NotImplementedError from the Veo video-delete transform: the Vertex AI Veo API has no delete operation (Google reaps videos automatically), so both transform_video_delete_request and its response counterpart deliberately refuse to implement deletion.","triggerScenarios":"Directly calling transform_video_delete_response on the vertex config, e.g. in a custom handler or an exhaustive unit test over provider methods.","commonSituations":"Custom HTTP handlers assembled by hand; test suites iterating all transform methods per provider.","solutions":["Do not call video_delete with vertex_ai — see error 2265","Skip this method in provider-matrix tests with an allowlist of unimplemented operations"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if provider == \"vertex_ai\":\n    raise FeatureUnavailable(\"video delete response transform is not implemented for vertex_ai\")","typeGuard":null,"tryCatchPattern":"try:\n    config.transform_video_delete_response(raw, logging_obj)\nexcept NotImplementedError as e:\n    raise FeatureUnavailable(str(e)) from e","preventionTips":["Gate delete at the request layer so the response transform is never reached","Allowlist NotImplementedError-raising transforms in provider-matrix tests"],"tags":["vertex-ai","veo","video-delete","notimplementederror","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}