BerriAI/litellm · error · ValueError

No embeddings found in LiteLLM embedding response.

Error message

No embeddings found in LiteLLM embedding response.

What it means

Guard in litellm_to_list: the object passed as an embedding response is falsy, not a litellm.EmbeddingResponse, or has an empty data list, so there are no embedding vectors to return to semantic-router.

Source

Thrown at litellm/router_strategy/auto_router/litellm_encoder.py:23

from semantic_router.encoders.base import AsymmetricDenseMixin

import litellm
from litellm._logging import verbose_router_logger

if TYPE_CHECKING:
    from litellm.router import Router
else:
    Router = Any


def litellm_to_list(embeds: litellm.EmbeddingResponse) -> list[list[float]]:
    """Convert a LiteLLM embedding response to a list of embeddings.

    :param embeds: The LiteLLM embedding response.
    :return: A list of embeddings.
    """
    if not embeds or not isinstance(embeds, litellm.EmbeddingResponse) or not embeds.data:
        raise ValueError("No embeddings found in LiteLLM embedding response.")
    return [x["embedding"] for x in embeds.data]


class CustomDenseEncoder(DenseEncoder):
    model_config = ConfigDict(extra="allow")

    def __init__(self, litellm_router_instance: Optional["Router"] = None, **kwargs):
        # Extract litellm_router_instance from kwargs if passed there
        if "litellm_router_instance" in kwargs:
            litellm_router_instance = kwargs.pop("litellm_router_instance")

        super().__init__(**kwargs)
        self.litellm_router_instance = litellm_router_instance


class LiteLLMRouterEncoder(CustomDenseEncoder, AsymmetricDenseMixin):
    """LiteLLM encoder class for generating embeddings using LiteLLM.

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Verify the embedding model returns embeddings; check model name and credentials for the embedding call.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at litellm/router_strategy/auto_router/litellm_encoder.py:23 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/f3c75aa9e2bce3e7. Report an issue: GitHub.