Skip to content

fix(vector-store): fail remote connection tests instead of validating local fallbacks #59

Closed

Description

@spelech

Finding

The connection-test API reports success for an unreachable remote Qdrant or Chroma endpoint because the backend constructor falls back to local disk storage.

Revision: 41ec093a745f1c0277893dc8f758b96b216c970f.

Reproduction

As an admin, POST /admin/api/vector-store/test with:

{
  "provider": "qdrant",
  "mode": "remote",
  "url": "http://127.0.0.1:1",
  "collection": "feasibility_unreachable"
}

Repeat with provider=chroma. No service is listening on port 1.

Both requests returned HTTP 200, success=true, mode=remote. Their messages describe a different target:

Qdrant (embedded @ /app/data/qdrant_storage) is healthy
Chroma (persistent @ /app/data/chroma_storage) is healthy

This proves only that local fallback storage works, not that the requested remote service is reachable.

Relevant code

Expected outcome

  • Connection tests must validate the exact requested target and fail when it cannot be reached.
  • Explicit remote deployments must not silently change durability/storage location; any supported fallback should be opt-in and visibly degraded.
  • Report configured and effective backend/mode separately where fallback is supported.
  • Add unreachable/refused/timeout tests for both remote backends, plus successful live-remote checks.

Live remote Chroma passed a separate ingestion/restart test. Live remote Qdrant could not be exercised without an available approved server artifact/endpoint; this issue does not claim that its happy path failed.

Activity

  1. spelech commented on Oct 27, 2026

    @spelech
    OwnerAuthor

    Triage & Implementation Brief

    1. Scope & Effort

    • Effort: Small (~30 lines of code + test)
    • Component: Vector Store Management (app/services/vector_store/manager.py, qdrant_store.py, chroma_store.py)

    2. Root Cause & Context

    POST /admin/api/vector-store/test tests remote vector endpoints. However, store constructors catch remote connection errors and fall back to embedded local storage, causing the test endpoint to return success=true, mode=remote for unreachable remote addresses (e.g. http://127.0.0.1:1).

    3. Implementation Plan

    • Add an allow_fallback: bool = True parameter to QdrantStore and ChromaStore constructors.
    • In the connection test endpoint (/admin/api/vector-store/test), instantiate stores with allow_fallback=False.
    • If the remote endpoint is unreachable or refuses connections, raise an exception and return HTTP 400 with the exact connection failure.

    4. Acceptance Criteria

    • Testing an unreachable remote URL returns success=false with a descriptive connection failure.
    • Testing valid reachable endpoints returns success=true.
    • Embedded mode tests continue to succeed when configured.
  2. google-labs-jules commented on Oct 27, 2026

    @google-labs-jules
    Contributor

    Jules is on it. When finished, you will see another comment and be able to review a PR.

  3. google-labs-jules commented on Oct 27, 2026

    @google-labs-jules
    Contributor

    Ready for a review! A PR has been created.

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

    julesgoogle-jules-bot

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions