#38890·n8n

VectorStoreQdrant: Qdrant URL subpath (reverse-proxy prefix) is dropped by createQdrantClient

Author: Bruce-YiiCreated Sep 17, 2026Updated Sep 17, 2026
Labelsteam:aistatus:in-linearstatus:team-assigned

Bug Description

When Qdrant is served behind a reverse proxy under a subpath (for example https://my-server.org/qdrant/), the Qdrant Vector Store node drops that subpath at runtime. The credential test can pass because it uses the configured qdrantUrl as the full base URL, but createQdrantClient() reconstructs the runtime client from only protocol/host/port, so requests go to /collections instead of /qdrant/collections.

This is the same user-visible signature as #15321, which was closed stale without a fix. It is separate from the Qdrant Cloud SDK compatibility failure discussed in #38401 and resolved by #37758 / n8n 2.39.x.

To Reproduce

  1. Serve Qdrant behind a reverse proxy under a path prefix such as /qdrant.
  2. Configure the n8n Qdrant credential URL as https://my-server.org/qdrant/.
  3. Verify the credential test succeeds.
  4. Use the Qdrant Vector Store node or collection search.
  5. Observe that the runtime client requests https://my-server.org/collections instead of https://my-server.org/qdrant/collections.

Repository-level reproduction on current master confirms the cause: parseQdrantUrl() drops URL.pathname, while the pinned @qdrant/[email protected] supports carrying the path via its prefix option.

Expected behavior

The runtime Qdrant client's effective REST base should match the configured credential base. Root URLs should remain unchanged; subpath URLs such as /qdrant, paths with a trailing slash, and nested paths such as /a/b should preserve the prefix on every Qdrant API call.

Debug Info

Source-level reproduction verified against n8n master cf49003c27c19b2490cf004a8a07429a2035222a. The defect is isolated to URL parsing/client construction in packages/@n8n/nodes-langchain/nodes/vector_store/VectorStoreQdrant/Qdrant.utils.ts; all runtime callers route through this helper. A minimal fix and regression tests are in PR #38889.

No Help > About runtime debug bundle is available for this repository-level reproduction.

Operating System

Windows was used for the repository-level verification; the defect is platform-independent URL handling.

n8n Version

Current master at cf49003c27c19b2490cf004a8a07429a2035222a (2026-09-17 verification).

Node.js Version

Not material to this defect; reproduction is at the URL parsing/client-construction layer on current master.

Database

Not database-dependent; the defect occurs before Qdrant HTTP requests are formed.

Execution mode

main (the defect is in shared Qdrant client construction and is not execution-mode specific).

Hosting

self hosted (reverse-proxy subpath deployment).

Provenance / separation

Split out of #38401 at the explicit request of @andreev0812: https://github.com/n8n-io/n8n/issues/38401#issuecomment-5655306670

The currently pinned @qdrant/[email protected] natively supports the required behavior through prefix; PR #38889 carries URL.pathname exactly once through that SDK-native option and includes regression coverage.