VectorStoreQdrant: Qdrant URL subpath (reverse-proxy prefix) is dropped by createQdrantClient
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
- Serve Qdrant behind a reverse proxy under a path prefix such as
/qdrant. - Configure the n8n Qdrant credential URL as
https://my-server.org/qdrant/. - Verify the credential test succeeds.
- Use the Qdrant Vector Store node or collection search.
- Observe that the runtime client requests
https://my-server.org/collectionsinstead ofhttps://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.
Source: n8n-io/n8n