BerriAI/litellm · error · NotImplementedError

Video list is not supported by Vertex AI Veo. Use the operat

Error message

Video list is not supported by Vertex AI Veo. Use the operations endpoint directly if you need to list operations.

What it means

Raised by VertexVeoConfig.transform_video_list_request. Veo exposes predictLongRunning operations rather than a pageable video collection, so LiteLLM's video_list operation has no Vertex AI implementation and raises NotImplementedError, directing you to the Google operations endpoint.

Source

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

        custom_llm_provider: str | None = None,
    ) -> VideoObject:
        """Video remix is not supported."""
        raise NotImplementedError("Video remix is not supported by Vertex AI Veo.")

    def transform_video_list_request(
        self,
        api_base: str,
        litellm_params: GenericLiteLLMParams,
        headers: dict,
        after: str | None = None,
        limit: int | None = None,
        order: str | None = None,
        extra_query: dict[str, object] | None = None,
    ) -> tuple[str, dict]:
        """
        Video list is not supported by Veo API.
        """
        raise NotImplementedError(
            "Video list is not supported by Vertex AI Veo. "
            "Use the operations endpoint directly if you need to list operations."
        )

    def transform_video_list_response(
        self,
        raw_response: httpx.Response,
        logging_obj: LiteLLMLoggingObj,
        custom_llm_provider: str | None = None,
    ) -> dict[str, str]:
        """Video list is not supported."""
        raise NotImplementedError("Video list is not supported by Vertex AI Veo.")

    def transform_video_delete_request(
        self,
        video_id: str,
        api_base: str,
        litellm_params: GenericLiteLLMParams,

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Track Veo video/operation IDs returned by video_generation in your own store instead of listing
  2. Query Google's Vertex AI operations endpoint (projects/{project}/locations/{loc}/operations) directly with your credentials
  3. Disable the list feature for vertex_ai in your provider capability map

Example fix

# before
videos = litellm.video_list(custom_llm_provider="vertex_ai")

# after
ops = list(
  f"https://{loc}-aiplatform.googleapis.com/v1/projects/{project}/locations/{loc}/operations"
)  # call with OAuth token; poll/inspect operations yourself
Defensive patterns

Strategy: validation

Validate before calling

LIST_CAPABLE_PROVIDERS = {"openai", "runwayml"}  # vertex_ai intentionally absent

if provider not in LIST_CAPABLE_PROVIDERS:
    raise FeatureUnavailable(f"{provider} has no video list API")

Type guard

def provider_supports_video_list(provider: str) -> bool:
    return provider in {"openai", "runwayml"}

Try / catch

try:
    litellm.video_list(custom_llm_provider=provider)
except NotImplementedError:
    if provider == "vertex_ai":
        videos = query_google_operations_endpoint(project, location)  # direct REST call
    else:
        raise

Prevention

When it happens

Trigger: Calling litellm.video_list(custom_llm_provider="vertex_ai") or GET /v1/videos with the vertex provider.

Common situations: Porting a provider-agnostic video gallery/listing UI to Vertex AI; code that lists videos before deleting them; assuming all providers implement the full video CRUD surface.

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/c372b2052b0bdd5c. Report an issue: GitHub.