BerriAI/litellm · error · ValueError

File reference {element} not resolved

Error message

File reference {element} not resolved

What it means

Gemini embedding part-builder guard: the input element is a files/... reference that was never resolved into {mime_type, uri} by the pre-flight resolution step (missing from resolved_files), so its fileData part cannot be built.

Source

Thrown at litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py:185

    Build a single PartType for an input element, handling text, data URIs,
    file references, and GCS URLs.
    """
    resolved_files = resolved_files or {}

    if element.startswith("data:") and ";base64," in element:
        mime_type, base64_data = _parse_data_url(element)
        blob: Final[BlobType] = {"mime_type": mime_type, "data": base64_data}
        return PartType(inline_data=blob)
    elif _is_gcs_url(element):
        mime_type = _infer_mime_type_from_gcs_url(element)
        file_data: Final[FileDataType] = {
            "mime_type": mime_type,
            "file_uri": element,
        }
        return PartType(file_data=file_data)
    elif _is_file_reference(element):
        if element not in resolved_files:
            raise ValueError(f"File reference {element} not resolved")
        file_info: Final = resolved_files[element]
        file_data_ref: Final[FileDataType] = {
            "mime_type": file_info["mime_type"],
            "file_uri": file_info["uri"],
        }
        return PartType(file_data=file_data_ref)
    else:
        return PartType(text=element)


_SUPPORTED_EMBED_PARAMS: Final = {"outputDimensionality", "taskType", "title"}


def _filter_embed_params(optional_params: dict) -> dict:
    """Map and filter optional_params to only include Gemini embedding fields."""
    gemini_params: Final = optional_params.copy()
    if "dimensions" in gemini_params:
        gemini_params["outputDimensionality"] = gemini_params.pop("dimensions")

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Ensure every file reference in the input is included in the file_data / resolved files mapping passed with the request.
  2. Check for typos in the reference key and confirm the referenced file was uploaded or provided before calling the embedding API.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py:185 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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