BerriAI/litellm · error · ValueError

Invalid gs URI: {gs_uri}

Error message

Invalid gs URI: {gs_uri}

What it means

Validation while converting file parts to Gemini format: a gs:// URI failed parsing/validation (must be gs://bucket/object), so the file reference cannot be turned into a Gemini fileData part.

Source

Thrown at litellm/llms/vertex_ai/gemini/transformation.py:213

        part_dict["media_resolution"] = media_resolution_enum

    if video_metadata is not None:
        gemini_video_metadata: Final = {}
        if "fps" in video_metadata:
            gemini_video_metadata["fps"] = video_metadata["fps"]
        if "start_offset" in video_metadata:
            gemini_video_metadata["startOffset"] = video_metadata["start_offset"]
        if "end_offset" in video_metadata:
            gemini_video_metadata["endOffset"] = video_metadata["end_offset"]
        if gemini_video_metadata:
            part_dict["video_metadata"] = gemini_video_metadata

    return cast(PartType, part_dict)


def _parse_gs_uri(gs_uri: str) -> tuple[str, str]:
    if not gs_uri.startswith("gs://"):
        raise ValueError(f"Invalid gs URI: {gs_uri}")
    uri_without_scheme: Final = gs_uri[5:]  # drop gs://
    uri_parts: Final = uri_without_scheme.split("/", 1)
    if len(uri_parts) != 2 or not uri_parts[0] or not uri_parts[1]:
        raise ValueError(f"Invalid gs URI: {gs_uri}")
    return uri_parts[0], uri_parts[1]


def _is_valid_gcs_bucket_name(bucket: str) -> bool:
    """
    Validate bucket name against core GCS naming constraints.
    """
    bucket_length: Final = len(bucket)
    max_bucket_length: Final = 222 if "." in bucket else 63
    if bucket_length < 3 or bucket_length > max_bucket_length:
        return False
    if "." in bucket and any(len(label) == 0 or len(label) > 63 for label in bucket.split(".")):
        return False
    if not re.fullmatch(r"[a-z0-9][a-z0-9._-]*[a-z0-9]", bucket):

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Provide a valid gs://bucket/object URI.
  2. Check for typos in the GCS URI.

Example fix

gs_uri="gs://my-bucket/path/to/object"
Defensive patterns

Strategy: validation

When it happens

Trigger: Triggered when a gs:// URI passed to the Vertex AI Gemini transformation is malformed.

Common situations: See trigger scenarios.


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