qdrant / qdrant/fastembed

[Bug]: Segmentation Fault or AssertionError during initialization on Python 3.14.2

Open
#618 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.2k
Forks
248
Avg merge
4d 8h
Merged PRs (30d)
4

Description

What happened?

When running on Python 3.14.2 (Linux), initializing SparseTextEmbedding causes a Segmentation Fault (Exit Code 139). Additionally, when used via qdrant-client, it triggers an AssertionError in the is_installed check because the model listing mechanism seems to return unexpected results or fails to find models in certain environments.

What is the expected behaviour?

The library should initialize correctly and be able to list/load models on Python 3.14, or at least fail gracefully with a clear error message instead of a Segmentation Fault.

A minimal reproducible example
import logging
from fastembed import SparseTextEmbedding

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def reproduce():
    try:
        logger.info("Initializing SparseTextEmbedding...")
        # This causes SIGSEGV (Exit Code 139) on Python 3.14.2
        model = SparseTextEmbedding(model_name="Qdrant/bm25")
        logger.info("Success!")
    except Exception as e:
        logger.error(f"Caught: {e}")

if __name__ == "__main__":
    reproduce()
What Python version are you on? e.g. python --version

Python 3.14.2 (Linux), using uv as package manager.

FastEmbed version

v0.8.0

What os are you seeing the problem on?

Linux

Relevant stack traces and/or logs
Traceback (most recent call last):
  File "test.py", line 22, in <module>
    db_instance = SharedLibraryDB().db
  File "qdrant_client/qdrant_fastembed.py", line 38, in __init__
    self.__class__._FASTEMBED_INSTALLED = FastEmbedMisc.is_installed()
  File "qdrant_client/fastembed_common.py", line 62, in is_installed
    assert len(LateInteractionMultimodalEmbedding.list_supported_models()) > 0
AssertionError

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce SparseTextEmbedding initialization with Qdrant/bm25 on Python 3.14.2 and Linux, then inspect the model-listing path and qdrant_client/fastembed_common.py around is_installed. Determine whether initialization or supported-model discovery triggers the failure. Done means models can be listed and loaded, or the library reports a clear error without a segmentation fault or assertion failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.