SynapCores Community Edition v2.4.8-ce
Community Edition · free · seamless upgrade from v2.4.x
v2.4.8-ce fixes a sharp edge in embedding: EMBED() and RAG ingestion used to fail outright
on any text longer than the embedding model's input window. Now the input is truncated to the
window and embedded by default — the behavior people expect from the model — with a single knob
to switch back to strict rejection. One targeted fix, drop-in, no data migration.
Embed long documents without a 400
The default embedding model (all-MiniLM) has a 512-token input window. Until now, calling
EMBED() on anything longer returned an error — prompt exceeds model input budget — which
surfaced the moment a RAG pipeline tried to embed a normal-length document or a long field.
As of v2.4.8-ce, over-length input is truncated to the model's window and embedded by default, which is exactly what the reference implementation for this model does. A long document now produces a vector instead of an error, so ingestion keeps moving. When input is truncated, the server logs it, so the behavior is never silent — and for best retrieval quality we still recommend chunking long documents to roughly 500 tokens rather than relying on truncation.
Keep strict rejection when you need it
If your pipeline must guarantee that nothing is ever silently shortened, keep the old behavior:
- per instance:
AIDB_EMBED_OVERSIZE=reject - or in
gateway.toml:[query.ai_service] embed_truncate = false
In that mode an over-length EMBED() returns the same explicit error as before. Truncate is the
default because a rejected embedding is the surprising outcome; reject stays one setting away.