BerriAI/litellm · error · ValueError

Video URL not found in response. Video may not be ready yet.

Error message

Video URL not found in response. Video may not be ready yet.

What it means

Fallback guard while extracting a video URL: output was empty and the status is neither a known processing state nor FAILED, so the code cannot tell whether the video will appear; raised to avoid silently returning nothing.

Source

Thrown at litellm/llms/runwayml/videos/transformation.py:378

        Helper method to extract video URL from RunwayML response.
        Shared between sync and async transforms.
        """
        # Extract video URL from the output field
        video_url = None
        if "output" in response_data and response_data["output"]:
            output: Final = response_data["output"]
            video_url = output[0] if isinstance(output, list) else output

        if not video_url:
            # Check if the video generation failed or is still processing
            status: Final = response_data.get("status", "UNKNOWN")
            if status in ["PENDING", "RUNNING", "THROTTLED"]:
                raise ValueError(f"Video is still processing (status: {status}). Please wait and try again.")
            elif status == "FAILED":
                failure_reason: Final = response_data.get("failure", "Unknown error")
                raise ValueError(f"Video generation failed: {failure_reason}")
            else:
                raise ValueError("Video URL not found in response. Video may not be ready yet.")

        return video_url

    def transform_video_content_response(
        self,
        raw_response: httpx.Response,
        logging_obj: LiteLLMLoggingObj,
    ) -> bytes:
        """
        Transform the RunwayML video content download response (synchronous).

        RunwayML's task endpoint returns JSON with a video URL in the output field.
        We need to extract the URL and download the video.

        Example response:
        {
            "id":"63fd0f13-f29d-4e58-99d3-1cb9efa14a5b",
            "createdAt":"2025-11-11T21:48:50.448Z",

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. The video may not be ready; poll the task again later.
  2. If the task is complete, inspect the response payload for the output URL field.

Example fix

# retry retrieval after the task reaches SUCCEEDED status.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Triggered when the RunwayML video response contains no video URL, typically because the video is not ready.

Common situations: See trigger scenarios.


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