Skip to content

Qdrant Vector Store node: "fetch failed" / UND_ERR_INVALID_ARG when loading collections dropdown (undici dispatcher version mismatch) #37903

Description

@bestillcat

Bug Description

The Qdrant Vector Store node's collection dropdown fails with a generic fetch failed error and no usable diagnostic info. Root cause isolated by calling @qdrant/js-client-rest directly inside the n8n container:

Failed to obtain server version. Unable to check client-server compatibility.
CLIENT ERROR: TypeError: fetch failed
at Object.processResponse (node:internal/deps/undici/undici:13720:20)
...
[cause]: InvalidArgumentError: invalid onError method
at Agent.dispatch (.../undici@6.28.0/node_modules/undici/lib/dispatcher/dispatcher-base.js:189:15)
...
code: 'UND_ERR_INVALID_ARG'

This is a known class of bug where a dispatcher created by one undici instance (the standalone undici@6.28.0 npm package bundled as a dependency of @qdrant/js-client-rest@1.16.2) is passed to a different undici instance backing global fetch (Node's built-in undici), and the two versions' internal dispatcher handler interfaces are incompatible.

To Reproduce

  1. Confirmed Qdrant instance is reachable and API key is valid — direct fetch() and curl calls with the same URL/key from inside the n8n container succeed with 200.
  2. n8n's built-in Qdrant credential test (generic HTTP request helper) succeeds.
  3. Reproduced the failure directly by requiring @qdrant/js-client-rest from n8n's own node_modules and calling client.getCollections() — throws the error above every time.

Expected behavior

Collections dropdown populates normally; underlying client library should not throw a dispatcher compatibility error.

Debug Info

Debug info

core

  • n8nVersion: 2.37.10
  • platform: docker (self-hosted)
  • nodeJsVersion: 26.5.1
  • nodeEnv: production
  • database: postgres
  • executionMode: regular
  • concurrency: -1
  • license: enterprise (production)
  • consumerId: 253ef39d-3ec0-4294-9620-35943ee44bb5

storage

  • success: all
  • error: all
  • progress: false
  • manual: true
  • binaryMode: filesystem

pruning

  • enabled: true
  • maxAge: 336 hours
  • maxCount: 10000 executions

client

  • userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/152.0.0.0 safari/537.36
  • isTouchDevice: false

security

  • secureCookie: false

cluster

  • instanceCount: 1
  • versions: 2.37.10
  • instances:
    • instanceKey: 1198cb9b-93b8-493e-91ed-6def97573fd2, hostId: main-fb46d8e5a77b, instanceType: main, instanceRole: leader, version: 2.37.10
  • checks:
    • check: hostid-clash, status: succeeded, warnings: -
    • check: lifecycle, status: succeeded, warnings: -
    • check: split-brain, status: succeeded, warnings: -
    • check: version-mismatch, status: succeeded, warnings: -

Generated at: 2026-09-05T03:44:00.252Z

Operating System

Rocky Linux 10.2

n8n Version

n8n version: 2.37.10 (self-hosted, Podman/Quadlet)

Node.js Version

v26.5.1

Database

PostgreSQL

Execution mode

main (default)

Hosting

self hosted

Activity

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

    status:in-linearIssue or PR is now in Linearstatus:team-assignedA team has been assigned the issue or PRteam:aiIssue is with the AI team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions