Common errors you might hit, and how to fix them. Each entry states the cause and the fix.
update / delete fails on an in-memory connection
These require durable storage. Connect with a path or s3:// URI, not
memory://:
db = infino.connect("./data") # not "memory://"
update reports a cardinality mismatch
update replaces matched rows 1:1, so the number of rows your predicate matches must
equal the number of replacement rows you pass. Match a specific set (e.g. by doc_id)
and supply exactly that many rows.
”Table already exists” on create_table
The table is already in the catalog. Use open_table to get a handle to the existing
table, or drop_table first if you mean to recreate it.
”Unknown table” / “not found”
The table name doesn’t exist in the catalog (a typo, or it was never created). Check
list_tables(). In SQL, the table name passed to a search function (bm25_search('docs', …))
must be an existing catalog table.
Schema or vector-dimension mismatch on append
Appended rows must match the table’s declared schema (column names and types). For the
vector column, each vector’s length must equal the index dimension you declared in
IndexSpec.vector(column, dim, …), and that must match your embedding model’s output.
Node.js: an integer column rejects a number
Arrow int64 columns expect a JavaScript bigint, not a number. Pass 2021n,
not 2021 (or coerce with BigInt(x)).
Rust: “cannot have two global allocators”
Infino installs mimalloc by default. If your process already sets a global allocator,
turn Infino’s off:
infino = { version = "0.1", default-features = false }
A vector query in SQL is rejected
vector_search / hybrid_search expect the query vector as a comma-separated string
literal ('0.12,0.04,...') or a SQL array literal ([0.12, 0.04, ...]), not a
bare column or an unquoted list.
Deleted rows still show up when reading Parquet directly
A raw Parquet read returns the rows as stored in the superfiles and does not apply
tombstones. For the live view (with update / delete applied), query through Infino
rather than reading the files directly. See Open format.
See also
Last modified on June 29, 2026