BerriAI/litellm · error · ValueError
Nested input list must not be empty
Error message
Nested input list must not be empty
What it means
Gemini batch-embed input guard: a nested list element (a combined-embedding group) is empty, so no parts could be produced for that content and the request is rejected rather than sending an empty content block.
Source
Thrown at litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py:240
into a single content with multiple parts, producing one combined
embedding for the group.
Examples:
input=["text", "image"] → 2 separate embeddings
input=[["text", "image"]] → 1 combined embedding
input=[["text", "image"], "x"] → 2 embeddings (1 combined + 1 separate)
"""
gemini_model_name: Final = f"models/{model}"
gemini_params: Final = _filter_embed_params(optional_params)
input_list: Final = [input] if isinstance(input, str) else input
requests: Final[list[EmbedContentRequest]] = []
for element in input_list:
if isinstance(element, list):
if not element:
raise ValueError("Nested input list must not be empty")
for sub in element:
if not isinstance(sub, str):
raise ValueError(f"Elements inside a nested input list must be strings, got {type(sub)}")
parts = [_build_part_for_input(sub, resolved_files=resolved_files) for sub in element]
else:
parts = [_build_part_for_input(element, resolved_files=resolved_files)]
request = EmbedContentRequest(
model=gemini_model_name,
content=ContentType(parts=parts),
**gemini_params,
)
requests.append(request)
return VertexAIBatchEmbeddingsRequestBody(requests=requests)
def transform_openai_input_gemini_embed_content(
input: GeminiEmbeddingInput,View on GitHub (pinned to 77b7c6c40c)
Solutions
- Pass a non-empty list of strings inside the nested input list; remove empty inner lists before calling the API.
- Filter the input, e.g. input = [lst for lst in input if lst], or ensure each inner list contains at least one string.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py:240 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/ca18910bc9953ff4.
Report an issue: GitHub.