mem0ai/mem0 · error · ValueError

Top-level entity parameters {invalid_keys} are not supported

Error message

Top-level entity parameters {invalid_keys} are not supported in search(). Use filters={'user_id': '...'} instead.

What it means

Error "Top-level entity parameters {invalid_keys} are not supported in search(). Use filters={'user_id': '...'} instead." thrown in mem0ai/mem0.

Source

Thrown at mem0/client/main.py:319

            query: The search query string.
            options: Typed options for the search operation (SearchMemoryOptions).
            **kwargs: Additional parameters such as filters, top_k, rerank.

        Returns:
            A dictionary containing search results in v1.1 format: {"results": [...]}

        Raises:
            ValidationError: If the input data is invalid.
            AuthenticationError: If authentication fails.
            RateLimitError: If rate limits are exceeded.
            MemoryQuotaExceededError: If memory quota is exceeded.
            NetworkError: If network connectivity issues occur.
            MemoryNotFoundError: If the memory doesn't exist (for updates/deletes).
        """
        # Reject top-level entity params - must use filters instead
        invalid_keys = ENTITY_PARAMS & set(kwargs.keys())
        if invalid_keys:
            raise ValueError(
                f"Top-level entity parameters {invalid_keys} are not supported in search(). "
                f"Use filters={{'user_id': '...'}} instead."
            )

        kwargs = {**(options.model_dump(exclude_unset=True) if options else {}), **kwargs}
        params = self._prepare_params(kwargs)
        query = _validate_and_trim_search_query(query)
        payload = {"query": query, **params}

        response = self.client.post("/v3/memories/search/", json=payload)
        response.raise_for_status()
        if "metadata" in kwargs:
            del kwargs["metadata"]
        capture_client_event(
            "client.search",
            self,
            {
                "keys": list(kwargs.keys()),

View on GitHub (pinned to 001c235229)

Solutions

  1. Move entity parameters into filters, e.g. search(query, filters={'user_id': '...'}).

When it happens

Trigger: Thrown at mem0/client/main.py:319 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15). Data as JSON: /api/errors/64a827ef65ec7bdb. Report an issue: GitHub.