You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(embedder): list(dense) returns ndarray objects not float lists -- Qdrant serialization crash on every BgeM3 ingest #286
BgeM3Embedder.embed() returns list(dense) where dense is a 2D numpy array of shape (N, 1024). list(numpy_2d_array) yields a list of 1-D numpy arrays, NOT a list of Python float lists. _validate_embed_dimension passes them silently (numpy len() works). But when Qdrant's upsert_points() serializes the vector payload, it raises TypeError: Object of type ndarray is not JSON serializable, crashing the ingest pipeline after all parse/chunk work is done.
Root cause
Fix #245 added the three-key probe (dense_vecs / dense / embeddings) but the return statement at line 242 did not convert numpy arrays to Python lists.
Fix
ingestion/embedder.py line 242: change return list(dense) to return dense.tolist() which recursively converts numpy arrays to Python floats.
Impact
Every document ingestion using BgeM3Embedder crashes at the Qdrant upsert step with a confusing serialization error instead of indexing the document.
Activity
fix(sprint-r4): root-cause fixes for all 17 bugs from code review rou…
piyushmakhija28 commentedon Jun 21, 2026
Fixed in PR #280 (Sprint R3/R4: fix(sprint-r3): root-cause fixes for all 39 bugs from code review round 3 + Sprint R4 round 4)