BerriAI/litellm · error · NotImplementedError

video extension is not supported for Vertex AI

Error message

video extension is not supported for Vertex AI

What it means

Raised by VertexVeoConfig.transform_video_extension_request. Vertex AI Veo has no video-extension API in LiteLLM's provider config, so requesting an extension of an existing video raises NotImplementedError for this provider.

Source

Thrown at litellm/llms/vertex_ai/videos/transformation.py:780

            id=video_id,
            object="video",
            status="processing",
            model=model,
        )
        video_obj.usage = _build_vertex_video_usage_from_request_data(request_data)
        return video_obj

    def transform_video_extension_request(
        self,
        prompt,
        video_id,
        seconds,
        api_base,
        litellm_params,
        headers,
        extra_body=None,
    ):
        raise NotImplementedError("video extension is not supported for Vertex AI")

    def transform_video_extension_response(self, raw_response, logging_obj, custom_llm_provider=None):
        raise NotImplementedError("video extension is not supported for Vertex AI")

    def get_error_class(self, error_message: str, status_code: int, headers: dict | httpx.Headers) -> BaseLLMException:
        from litellm.llms.vertex_ai.common_utils import VertexAIError

        return VertexAIError(
            status_code=status_code,
            message=error_message,
            headers=headers,
        )

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Generate the longer clip directly with video_generation using duration_seconds instead of extending
  2. Use a provider that implements transform_video_extension_request if extension is a hard requirement

Example fix

# before
litellm.video_extension(video_id=vid, seconds=8, custom_llm_provider="vertex_ai")

# after
litellm.video_generation(prompt=same_prompt, model="vertex_ai/veo-3.0-generate-001", duration_seconds=8)
Defensive patterns

Strategy: validation

Validate before calling

EXTENSION_CAPABLE_PROVIDERS: set[str] = set()  # vertex_ai not included

if provider not in EXTENSION_CAPABLE_PROVIDERS:
    raise FeatureUnavailable(f"{provider} does not support video extension")

Type guard

def provider_supports_extension(provider: str) -> bool:
    return provider != "vertex_ai"

Try / catch

try:
    litellm.video_extension(video_id=vid, seconds=8, custom_llm_provider=provider)
except NotImplementedError:
    if provider == "vertex_ai":
        litellm.video_generation(prompt=orig_prompt, model="vertex_ai/veo-3.0-generate-001", duration_seconds=8)
    else:
        raise

Prevention

When it happens

Trigger: Calling litellm.video_extension(video_id=..., seconds=..., custom_llm_provider="vertex_ai") or the equivalent pass-through route.

Common situations: Porting extend-clip workflows from providers that support extension; generic video pipelines that call every operation for every provider.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/4a9537a8af7a4a16. Report an issue: GitHub.