Skip to content

[Bug]: /api/v2/health answers healthy while the vector store is unreachable #1777

Description

@wanghy73

Describe the bug

GET /api/v2/health returns 200 {"status": "healthy", ...} when the vector store cannot be reached, so a server that cannot store or search episodic memory is reported as healthy. Seen on main at ad8ff24.

The handler returns a constant and checks no dependency (packages/server/src/memmachine_server/server/api_v2/router.py:1097):

@router.get("/health", description=RouterDoc.HEALTH_CHECK, tags=["System"])
async def health_check() -> dict[str, str]:
    """Health check endpoint for container orchestration."""
    return {
        "status": "healthy",
        "service": "memmachine",
        "version": get_version().server_version,
    }

Its docstring says it is for container orchestration, and the repo's own docker-compose.yml uses it as the MemMachine container's healthcheck:

healthcheck:
  test: ["CMD", "curl", "--fail", "--silent", "http://localhost:8080/api/v2/health"]

So Docker, a load balancer, or a Kubernetes probe pointed at this endpoint keeps the instance in service while its episodic adds and searches fail.

Steps to reproduce

  1. Start MemMachine with the event-memory backend on PostgreSQL and Qdrant (docker-compose.yml, Qdrant profile).
  2. Confirm it is healthy and works: GET /api/v2/health returns 200, and an add and a search succeed.
  3. Make Qdrant unreachable without closing its port: docker pause <qdrant container>.
  4. Call GET /api/v2/health. It answers 200 {"status": "healthy", ...}.
  5. Call POST /api/v2/memories/search on an existing project. It fails.

Activity

  1. added theissue type on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions