stanford-oval/storm · error · ValueError

Please provide a url for the Qdrant server.

Error message

Please provide a url for the Qdrant server.

What it means

Raised by QdrantVectorStoreManager._init_online_vector_db when the url argument is None — there is no default or env fallback for it. Online mode needs an explicit Qdrant server endpoint (self-hosted URL or Qdrant Cloud URL) to build the QdrantClient, so the manager aborts immediately.

Source

Thrown at knowledge_storm/utils.py:119

    @staticmethod
    def _init_online_vector_db(
        url: str, api_key: str, collection_name: str, model: "HuggingFaceEmbeddings"
    ):
        from qdrant_client import QdrantClient

        """Initialize the Qdrant client that is connected to an online vector store with the given URL and API key.

        Args:
            url (str): URL of the Qdrant server.
            api_key (str): API key for the Qdrant server.
        """
        if api_key is None:
            if not os.getenv("QDRANT_API_KEY"):
                raise ValueError("Please provide an api key.")
            api_key = os.getenv("QDRANT_API_KEY")
        if url is None:
            raise ValueError("Please provide a url for the Qdrant server.")

        try:
            client = QdrantClient(url=url, api_key=api_key)
            return QdrantVectorStoreManager._check_create_collection(
                client=client, collection_name=collection_name, model=model
            )
        except Exception as e:
            raise ValueError(f"Error occurs when connecting to the server: {e}")

    @staticmethod
    def _init_offline_vector_db(
        vector_store_path: str, collection_name: str, model: "HuggingFaceEmbeddings"
    ):
        from qdrant_client import QdrantClient

        """Initialize the Qdrant client that is connected to an offline vector store with the given vector store folder path.

        Args:

View on GitHub (pinned to fb951af774)

Solutions

  1. Pass the server URL explicitly: create_or_update_vector_store(url="https://<cluster>.cloud.qdrant.io:6333", online_mode=True, ...)
  2. For a local server use url="http://localhost:6333"
  3. Double-check keyword-argument names/order — unlike the key, url has no environment-variable fallback

Example fix

# before
store = QdrantVectorStoreManager.create_or_update_vector_store(online_mode=True, api_key=KEY, model=model, collection_name="c")

# after
store = QdrantVectorStoreManager.create_or_update_vector_store(url="https://xyz.cloud.qdrant.io:6333", online_mode=True, api_key=KEY, model=model, collection_name="c")
Defensive patterns

Strategy: validation

Validate before calling

def valid_qdrant_url(url):
    return url is not None and url.startswith(("http://", "https://"))

assert valid_qdrant_url(URL), "url is required (no env fallback) for online mode"

Try / catch

try:
    store = QdrantVectorStoreManager.create_or_update_vector_store(online_mode=True, api_key=K, model=m, collection_name=c)
except ValueError as e:
    if "url" in str(e):
        raise SystemExit("Pass url= explicitly, e.g. https://<cluster>.cloud.qdrant.io:6333")
    raise

Prevention

When it happens

Trigger: Calling create_or_update_vector_store(..., online_mode=True) or _init_online_vector_db(api_key=..., url=None). Note the API-key check runs first, so the key must already be resolved for this error to surface.

Common situations: Developer sets QDRANT_API_KEY but forgets the URL entirely; passing arguments in the wrong order so url receives None; copy-paste from offline-mode examples that use a local path instead of a url; expecting a QDRANT_URL env fallback that doesn't exist in this code.

Understand the failure class

Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.

Related errors


AI-assisted analysis of stanford-oval/storm@fb951af774 (2026-08-28). Data as JSON: /api/errors/c4eb606439390560. Report an issue: GitHub.